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 およびユニット型 () は、リテラルを使って表現できます。

整数は、代わりに 16 進数、8 進数、2 進数表記で表現することもでき、 それぞれ次のプレフィックスを使用します: 0x0o0b

数値リテラルには、可読性を高めるためにアンダースコアを挿入できます。たとえば、 1_0001000 と同じで、0.000_0010.000001 と同じです。

Rust は科学的な E記法 もサポートしています。たとえば、1e67.6e-4 です。 関連付けられる型は 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);
}