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


Rust SyncOnceCell.set用法及代码示例


本文简要介绍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-lang.org大神的英文原创作品 std::lazy::SyncOnceCell.set。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。