Think Twice
IT技術メモ | Rustのメモ
Created: 2022-10-05 / Updated: 2022-10-12

Rustの文法


ここではRustの文法を簡単にまとめておきます。

目次


基礎文法 - Rustの特徴

基本的な型、変数の扱い、束縛

文字列

文と式と関数

その他

参考書籍

基礎文法 - 型

型推論

数値の型

ビット長 整数 符号なし整数
8ビット i8 u8
16ビット i16 u16
32ビット i32 u32
64ビット i64 u64
処理系依存 isize usize

数値のリテラル

数値リテラル
10進数 12_345
16進数 0xff
8進数 0o77
2進数 0b1111_0000
1バイト b'A'

浮動小数点数

ビット長 浮動小数点数 備考
32ビット f32 単精度浮動小数点数
64ビット f64 倍精度浮動小数点数
Copy
fn main() {
    let x = 100.234;
    println!("x is {}", x);
    let y : f64 = 100.234;
    println!("y is {}", y);
}

論理値

truefalseの2つのみ値を持つ。bool型

Copy
fn main() {
    let b = true;
    println!("b is {}", b);
}

文字型

文字列型

&str型とString型

ステークホルダー{}を指定したprintln!の使用例
Copy
fn main() {
    let dog = "DOG";
    let cat = "CAT";
    println!("{} and {}", dog, cat);
}
出力結果
Copy
DOG and CAT

Rustの標準ライブラリString型を使う方法

String::from関数
Copy
fn main() {
    let s = String::from("Hello Rust!");
    println!("{}", s);
}
出力結果
Copy
Hello Rust!
更新の例「+」演算子
Copy
fn main() {
    let s1 = String::from("Hello");
    let s2 = String::from("Rust");
    let s3 = String::from("World.");
    let s = s1 + " " + &s2 + " " + &s3;
    println!("{}", s);
}
出力結果
Copy
Hello Rust World.

実際はformat!マクロを使うと便利

format!マクロ
Copy
fn main() {
    let s1 = String::from("Hello");
    let s2 = String::from("Rust");
    let s3 = String::from("World.");
    let s = format!("{} {} {}", s1, s2, s3);
    println!("{}", s);
}
出力結果
Copy
Hello Rust World.

String::from関数でなくて"(ダブルクォート)を使って直接文字列を代入する方法でもformat!マクロは使えます。

直接文字列を代入する方法
Copy
fn main() {
    let s1 = "Hello";
    let s2 = "Rust";
    let s3 = "World.";
    let s = format!("{} {} {}", s1, s2, s3);
    println!("{}", s);
}

出力結果
Copy
Hello Rust World.

複合型

タプル型

出力結果
Copy
名前はfumoで、年齢は40です。

配列型

出力結果
Copy
最初の季節 春
最後の季節 冬

サンプルソース

参考書籍


参考

サンプルソース

参考書籍