リテラル
数値リテラルには、型をサフィックスとして追加することで型注釈を付けることができます。たとえば、 リテラル 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)); }
前のコードで使われている概念のうち、まだ説明していないものがいくつかあります。 せっかちな読者のために、ここで簡単に説明します。