Rust類型轉換 - 字面量

字面量

數字文本可以通過添加類型作爲後綴註釋類型, 目前除了 usize 使用 usize 後綴,以及 isize 使用 isize 作爲後綴。

後綴的數字文字類型將取決於如何使用它們。如果沒有約束存在,編譯器將使用 i32 爲整數,  f64 作爲浮點數。

fn main() {
// Suffixed literals, their types are known at initialization
let x = 1u8;
let y = 2u32;
let z = 3f32;

// Unsuffixed literal, their types depend on how they are used
let i = 1;
let f = 1.0;

// \`size\_of\_val\` returns the size of a variable in bytes
println!("size of \`x\` in bytes: {}", std::mem::size\_of\_val(&x));
println!("size of \`y\` in bytes: {}", std::mem::size\_of\_val(&y));
println!("size of \`z\` in bytes: {}", std::mem::size\_of\_val(&z));
println!("size of \`i\` in bytes: {}", std::mem::size\_of\_val(&i));
println!("size of \`f\` in bytes: {}", std::mem::size\_of\_val(&f));

}

有在前面的代碼中使用一些概念,但沒有解釋,這裏有一個簡單的解釋:

  • fun(&foo) 是用來引用參數傳遞給函數, 而不是通過 (fun(foo)) 值. 詳情請參閱 借用.
  • std::mem::size_of_val 是一個函數,調用它的完整路徑。代碼可以分成稱爲模塊的邏輯單元。在這種情況下,該 size_of_val 函數是在所定義的 mem 模塊, 並且 mem 模塊是定義在 std 包裝箱中. 有關更多詳細信息,請參閱 modules 和 crates.