Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 — простое средство обеспечить безопасность: у него есть метод set, который принимает &self. Он не требует проверки во время выполнения, но требует перемещения значений, что может иметь собственную цену.