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, F = fn() -> T> !Sync for Lazy<T, F>
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.