介紹
知識點
- 顯式類型轉換是強制類型轉換的超集,所有的強制類型轉換都可以通過顯式轉換的方式主動觸發。某些場景隻适用于顯式類型轉換。
- 顯式類型轉換的方式是使用關鍵字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!");
}