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.