本文简要介绍rust语言中 Struct std::lazy::SyncLazy
的用法。
用法
pub struct SyncLazy<T, F = fn() -> T> { /* fields omitted */ }
在第一次访问时初始化的值。
此类型是线程安全的 Lazy
,可用于静态。
例子
#![feature(once_cell)]
use std::collections::HashMap;
use std::lazy::SyncLazy;
static HASHMAP: SyncLazy<HashMap<i32, String>> = SyncLazy::new(|| {
println!("initializing");
let mut m = HashMap::new();
m.insert(13, "Spica".to_string());
m.insert(74, "Hoyten".to_string());
m
});
fn main() {
println!("ready");
std::thread::spawn(|| {
println!("{:?}", HASHMAP.get(&13));
}).join().unwrap();
println!("{:?}", HASHMAP.get(&74));
// Prints:
// ready
// initializing
// Some("Spica")
// Some("Hoyten")
}
相关用法
- Rust SyncLazy.force用法及代码示例
- Rust SyncSender.send用法及代码示例
- Rust SyncOnceCell用法及代码示例
- Rust SyncOnceCell.get_or_try_init用法及代码示例
- Rust SyncOnceCell.get_or_init用法及代码示例
- Rust SyncSender.try_send用法及代码示例
- Rust SyncOnceCell.set用法及代码示例
- Rust SyncOnceCell.take用法及代码示例
- Rust SyncSender用法及代码示例
- Rust SyncOnceCell.into_inner用法及代码示例
- 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大神的英文原创作品 Struct std::lazy::SyncLazy。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。