Cell

Cell は値をラップし、Cell への共有参照だけを使ってその値を取得または設定できるようにします。ただし、内部の値への参照は一切許可しません。参照が存在しないため、借用規則が破られることはありません。

// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

use std::cell::Cell;

fn main() {
    // `cell` は可変として宣言されていないことに注意してください。
    let cell = Cell::new(5);

    cell.set(123);
    dbg!(cell.get());
}
  • Cell は安全性を確保するためのシンプルな手段です。&self を受け取る set メソッドを持っています。これには実行時チェックは不要ですが、値をムーブする必要があり、そのこと自体にコストがかかる場合があります。