当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。