← Rust コース
42. Box<T> — ヒープにデータを置く
Box<T> は「値をヒープに置き、その場所を指すポインタ」を持つ型です。Box::new(5) で値をヒープに移し、変数自体にはポインタだけが残ります。中身には * で届き、メソッドはドット記法でそのまま呼べます。
実務では、サイズの大きいデータの所有権を中身ごとコピーせずに渡したいときや、コンパイル時にサイズが決まらない型(自分自身を含む再帰的な enum など)を扱うときに使います。所有権のルールは普通の値と同じで、所有者がスコープを抜ければヒープのデータも自動で解放されます。
このように「ポインタのように振る舞い、追加の能力を持つ型」をスマートポインタと呼びます。Box はその最も単純な代表で、このセクションで学ぶ型たちの入り口です。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Rust
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗