広告スペース(バナー)
🦀Rust レッスン
基本文法の基礎7▾
安全なエラー処理とトレイト4▾
レッスン 9 / 20
所有権(ownership)の基本
このレッスンでは、Rust最大の特徴である所有権(ownership)の考え方を学びます。「Rust 所有権 わかりやすく」で調べている方向けです。
Rustでは、それぞれの値には「所有者」となる変数が1つだけ存在します。所有者が別の変数に代入されると、値の「所有権」がそちらに移動(ムーブ)し、元の変数は使えなくなります。これによりメモリ管理のバグを防ぎます。
サンプルコードでは、String型の変数s1をs2に代入すると、所有権がs2に移動し、s1は使えなくなる様子を、clone()で複製することで回避しています。
初心者がよくつまずくのが、まさにこの「代入すると元の変数が使えなくなる」という挙動です。他の言語ではあまり見られない仕組みのため、最初は戸惑いますが、これがメモリを安全に管理する仕組みの核心です。
実際の開発現場では、所有権のルールのおかげで、ガベージコレクションなしでもメモリリークや二重解放といったバグが起きにくくなっています。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではRustを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
値の複製を扱う、所有権を意識したプログラムが作れるようになります。
値の複製を扱う、所有権を意識したプログラムが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)