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 の核心です。
✅ 理解度チェック
再代入できる変数を宣言するには?