リテラル
数値型リテラルはサフィックスにより型を指定することが可能です。例えば、42というリテラルに対してi32型を指定するには42i32とします。
サフィックスを指定しない数値型リテラルの場合、その型がどのように使用されるかに依存して決められます。デフォルトでは整数型の場合i32が、浮動小数点数型にはf64が使われます。
fn main() {
// サフィックスを指定したリテラル。型は初期化とともに確定します。
let x = 1u8;
let y = 2u32;
let z = 3f32;
// サフィックスを指定しないリテラル。型は使用方法に依存します。
let i = 1;
let f = 1.0;
// `size_of_val`関数は変数のサイズをバイトで返します。
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));
}
上のコードには現時点では解説していない考えがいくつか使用されています。気になる方のために簡単に説明をしておきましょう。