リテラルと演算子 - 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

# リテラルと演算子

整数`1`、浮動小数点数`1.2`、文字`'a'`、文字列`"abc"`、ブーリアン`true`、ユニット`()`は、リテラルを使って表すことが可能です。

また整数型の場合、プレフィックスに`0x`、`0o`、`0b`を指定することでそれぞれ16進数、8進数、2進数を使って表すことができます。

可読性のため、`_`（アンダースコア）を数値リテラルの間に挿入することができます。例えば`1_000`は`1000`と、`0.000_001`は`0.000001`とそれぞれ同一です。

また、Rustは`1e6`や`7.6e-4`などの科学的なE表記をサポートしています。この表記は`f64`になります。

コンパイラに、リテラルの型を伝えたい場合があります。現在の仕様では、リテラルが32ビット符号無し整数であることを伝える場合、`u32`サフィックスを、符号付き32ビット整数であれば`i32`サフィックスを使用します。

Rustで使用可能な演算子とその優先順位は、Cなどの言語のものとほぼ同じです。

    fn main() {
        // 整数の足し算
        println!("1 + 2 = {}", 1u32 + 2);

        // 整数の引き算
        println!("1 - 2 = {}", 1i32 - 2);
        // TODO ^ 型が重要であることを実感するため`1i32`を`1u32`に変更してみましょう。

        // 科学的表記
        println!("1e4 is {}, -2.5e-3 is {}", 1e4, -2.5e-3);

        // 短絡評価できる論理演算子
        println!("true AND false is {}", true && false);
        println!("true OR false is {}", true || false);
        println!("NOT true is {}", !true);

        // ビットワイズ演算
        println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);
        println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);
        println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);
        println!("1 << 5 is {}", 1u32 << 5);
        println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);

        // 可読性のための`_`（アンダースコア）の使用
        println!("One million is written as {}", 1_000_000u32);
    }