pub struct Lazy<T, F = fn() -> T> { /* fields omitted */ }
🔬 This is a nightly-only experimental API. (
once_cell
#74465)
Expand description
在首次访问时初始化的值。
#![feature(once_cell)]
use std::lazy::Lazy;
let lazy: Lazy<i32> = Lazy::new(|| {
println!("initializing");
92
});
println!("ready");
println!("{}", *lazy);
println!("{}", *lazy);
Run
🔬 This is a nightly-only experimental API. (
once_cell
#74465)
使用给定的初始化函数创建一个新的惰性值。
#![feature(once_cell)]
use std::lazy::Lazy;
let hello = "Hello, World!".to_string();
let lazy = Lazy::new(|| hello.to_uppercase());
assert_eq!(&*lazy, "HELLO, WORLD!");
Run
🔬 This is a nightly-only experimental API. (
once_cell
#74465)
强制对此延迟值求值,并向结果返回引用。
这等效于 Deref
impl,但是是显式的。
#![feature(once_cell)]
use std::lazy::Lazy;
let lazy = Lazy::new(|| 92);
assert_eq!(Lazy::force(&lazy), &92);
assert_eq!(&*lazy, &92);
Run
使用 Default
作为初始化函数创建一个新的惰性值。