本文簡要介紹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 Cell.as_slice_of_cells用法及代碼示例
- Rust Cell.into_inner用法及代碼示例
- Rust Cell.swap用法及代碼示例
- Rust Cell.get_mut用法及代碼示例
- Rust Cell.as_ptr用法及代碼示例
- Rust Cell.new用法及代碼示例
- Rust Cell.as_array_of_cells用法及代碼示例
- Rust Cell.replace用法及代碼示例
- Rust Cell.take用法及代碼示例
- Rust Cell.get用法及代碼示例
- Rust Cell.update用法及代碼示例
- Rust Cell.from_mut用法及代碼示例
- Rust Cell.set用法及代碼示例
- Rust CStr.into_c_string用法及代碼示例
- Rust Cursor.new用法及代碼示例
- Rust Condvar.notify_all用法及代碼示例
- Rust Cursor.remaining_slice用法及代碼示例
- Rust Command.args用法及代碼示例
- Rust Condvar.wait用法及代碼示例
- Rust Chars.as_str用法及代碼示例
- Rust CString.into_bytes用法及代碼示例
- Rust CStr.from_bytes_with_nul用法及代碼示例
- Rust Cow.is_owned用法及代碼示例
- Rust Cow用法及代碼示例
- Rust Condvar.wait_timeout用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Struct std::cell::Cell。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。