Rust 入門コース / レッスン 1

変数と所有権のさわり

変数はデフォルトで不変

Rust の let はデフォルトで再代入不可。変更したい変数だけ mut を付けます。「変わらないことが基本」という設計がバグを減らします。

main.rs

fn main() { let name = "4peiron"; // 不変 let mut count = 0; // 可変 count += 1; println!("{} : {}", name, count); // 所有権: String は「持ち主」がひとり let s1 = String::from("hello"); let s2 = s1; // 所有権が s2 へ移動(ムーブ) // println!("{}", s1); // ← コンパイルエラー!s1 はもう使えない println!("{}", s2); }

所有権は「持ち主はひとり」ルール

ヒープ上の値には所有者が常に 1 つだけ。代入や関数渡しで所有権が移動(ムーブ)し、元の変数は無効になります。これをコンパイル時に検査することで、ガベージコレクタなしでメモリ安全を実現しているのが Rust の核心です。

✅ 理解度チェック

再代入できる変数を宣言するには?