pub struct Lazy<T, F = fn() -> T> { /* fields omitted */ }
🔬 This is a nightly-only experimental API. (
once_cell #74465)
 Expand description
A value which is initialized on the first access.
#![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)
 
Creates a new lazy value with the given initializing function.
#![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)
 
Forces the evaluation of this lazy value and returns a reference to
the result.
This is equivalent to the Deref impl, but is explicit.
#![feature(once_cell)]
use std::lazy::Lazy;
let lazy = Lazy::new(|| 92);
assert_eq!(Lazy::force(&lazy), &92);
assert_eq!(&*lazy, &92);
Run
Formats the value using the given formatter. Read more
Creates a new lazy value using Default as the initializing function.
The resulting type after dereferencing.
impl<T> Any for T where
    T: 'static + ?Sized, 
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
impl<T, U> Into<U> for T where
    U: From<T>, 
The type returned in the event of a conversion error.
The type returned in the event of a conversion error.