本文简要介绍rust语言中 std::lazy::SyncOnceCell.set
的用法。
用法
pub fn set(&self, value: T) -> Result<(), T>
将此单元格的内容设置为 value
。
如果另一个线程当前正在尝试初始化单元格,则可能会阻塞。当 set 返回时,单元格保证包含一个值,尽管不一定是提供的值。
如果此调用设置了单元格的值,则返回 Ok(())
。
例子
#![feature(once_cell)]
use std::lazy::SyncOnceCell;
static CELL: SyncOnceCell<i32> = SyncOnceCell::new();
fn main() {
assert!(CELL.get().is_none());
std::thread::spawn(|| {
assert_eq!(CELL.set(92), Ok(()));
}).join().unwrap();
assert_eq!(CELL.set(62), Err(62));
assert_eq!(CELL.get(), Some(&92));
}
相关用法
- Rust SyncOnceCell.get_or_try_init用法及代码示例
- Rust SyncOnceCell.get_or_init用法及代码示例
- Rust SyncOnceCell.take用法及代码示例
- Rust SyncOnceCell.into_inner用法及代码示例
- Rust SyncOnceCell用法及代码示例
- Rust SyncSender.send用法及代码示例
- Rust SyncLazy用法及代码示例
- Rust SyncSender.try_send用法及代码示例
- Rust SyncSender用法及代码示例
- Rust SyncLazy.force用法及代码示例
- Rust SystemTime.elapsed用法及代码示例
- Rust SystemTimeError.duration用法及代码示例
- Rust SystemTimeError用法及代码示例
- Rust SymmetricDifference用法及代码示例
- Rust System用法及代码示例
- Rust SystemTime.now用法及代码示例
- Rust SystemTime用法及代码示例
- Rust SystemTime.duration_since用法及代码示例
- Rust String.try_reserve用法及代码示例
- Rust Saturating.reverse_bits用法及代码示例
- Rust Seek.stream_len用法及代码示例
- Rust SplitNMut用法及代码示例
- Rust SocketAddrV6.ip用法及代码示例
- Rust Shl.shl用法及代码示例
- Rust SubAssign.sub_assign用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::lazy::SyncOnceCell.set。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。