天天看點

014 Rust死靈書之顯式類型轉換

介紹

知識點

  • 顯式類型轉換是強制類型轉換的超集,所有的強制類型轉換都可以通過顯式轉換的方式主動觸發。某些場景隻适用于顯式類型轉換。
  • 顯式類型轉換的方式是使用關鍵字as,如:expr as Type。
  • 顯式類型轉換必須在類型層面是合法的,否則在編譯時會報錯。
  • 顯式類型轉換本身不屬于非安全行為。
  • 顯式類型轉換不可傳遞,例子:x as y as z合法,不代表x as z合法。
  • 其它注意事項。

示例

fn print(x: &i32) { //傳入進入的時候會發生轉換   &mut i32 -> &i32
    println!("x = {}", x);
}

fn main() {
    let x: &mut i32 = &mut 10;
    print(x);
    print(x as &i32);  //轉換也可以通過顯式的方式主動觸發

    let a: i8 = 1;
    let b: i32 = a as i32;
    println!("b = {}", b);
    println!("Hello, world!");
}