リテラル

リテラルは、ソースコードに直接記述された固定値を指します。 Rustでは、数値、文字、文字列、ブール値、および複合データ型(タプルや配列など)に対応するリテラルが用意されています。

数値リテラル

  • 整数リテラル: デフォルトでi32型。型サフィックスを使用して異なる数値型を指定できます(例: 57u8, 3.14f32)。
  • 浮動小数点数リテラル: デフォルトでf64型。型サフィックスを使用して指定できます(例: 3.14f32)。
  • 進数リテラル: 二進数(0b)、八進数(0o)、十六進数(0x)の表記が可能です。
fn main() {
    let dec = 98_222; // 十進数
    let hex = 0xff;   // 十六進数
    let oct = 0o77;   // 八進数
    let bin = 0b1111_0000; // 二進数
    let byte = b'A';  // バイトリテラル
    println!("dec: {}, hex: {}, oct: {}, bin: {}, byte: {}", dec, hex, oct, bin, byte);
}

アンダースコア

数値リテラルにアンダースコア(_)を使って桁区切りを行うことができます。これにより、長い数値をより読みやすくすることができます。アンダースコアは、数値のどこにでも挿入でき、コンパイラはこれを無視して数値を処理します。

文字列と文字リテラル

  • 文字列リテラル: ダブルクォートで囲みます(例: "hello")。&str型のスライスを表し、UTF-8でエンコードされたテキストを保持します。
  • 文字リテラル: シングルクォートで囲みます(例: 'a')。char型を表します。
fn main() {
    let s = "Hello, world!";
    let c = 'z';
    let heart_eyed_cat = '😻';
    println!("s: {}, c: {}, heart_eyed_cat: {}", s, c, heart_eyed_cat);
}

ブールリテラル

  • ブールリテラル: trueまたはfalseの値を持ちます。
fn main() {
    let t = true;
    let f: bool = false; // 明示的に型を指定
    println!("t: {}, f: {}", t, f);
}