當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Cell用法及代碼示例


本文簡要介紹rust語言中 Struct std::cell::Cell 的用法。

用法

#[repr(transparent)]pub struct Cell<T> where    T: ?Sized,  { /* fields omitted */ }

一個可變的內存位置。

例子

在此示例中,您可以看到 Cell<T> 在不可變結構內啟用突變。換句話說,它啟用“interior mutability”。

use std::cell::Cell;

struct SomeStruct {
    regular_field: u8,
    special_field: Cell<u8>,
}

let my_struct = SomeStruct {
    regular_field: 0,
    special_field: Cell::new(1),
};

let new_value = 100;

// ERROR: `my_struct` is immutable
// my_struct.regular_field = new_value;

// WORKS: although `my_struct` is immutable, `special_field` is a `Cell`,
// which can always be mutated
my_struct.special_field.set(new_value);
assert_eq!(my_struct.special_field.get(), new_value);

有關更多信息,請參閱module-level documentation

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Struct std::cell::Cell。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。