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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。