リテラル - Rust By Example
Description: Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries.

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# リテラル

数値型リテラルはサフィックスにより型を指定することが可能です。例えば、`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));
    }

上のコードには現時点では解説していない考えがいくつか使用されています。気になる方のために簡単に説明をしておきましょう。

- `std::mem::size_of_val`は関数ですが、 絶対パス で呼び出されています。ソースコードは論理的に区切られた モジュール と呼ばれるものにわけられることができます。今回の場合は`size_of_val`関数は`mem`モジュール内で定義されており、`mem`モジュールは`std` クレート 内で定義されています。より詳しくはモジュールとクレートを参照してください。