Rust の所有権と借用を図解で理解する

言語

Rust の学習で最初の関門になるのが所有権だ。だが「値の持ち主は常にひとつ」という原則さえ掴めば、borrow checker の指摘はほとんど予測できるようになる。

ムーブ: 持ち主が移る

代入や関数への受け渡しで、値の所有権は移動する。元の変数はもう使えない。

rust
let s1 = String::from("hello");
let s2 = s1; // 所有権が s2 へムーブ
// println!("{}", s1); // ここで s1 は使えない

借用: 参照を貸す

所有権を渡さずに参照だけ貸すのが借用だ。可変な借用は同時にひとつだけ、というルールがデータ競合をコンパイル時に防いでいる。

ゆべしま
フロントエンドエンジニア。型と開発体験の話が好き。週末は個人開発とコーヒー。