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