Метод get
Метод get класса OnceLock возвращает
ссылку на значение, которое было сохранено в
OnceLock. Если значение ещё не было
инициализировано, метод возвращает None.
Если инициализация уже произошла, возвращается
Some со ссылкой на внутреннее значение.
Метод не принимает параметров и не изменяет
состояние OnceLock.
Синтаксис
once_lock.get()
Пример
Давайте создадим OnceLock и проверим,
что вернёт метод get до инициализации:
use std::sync::OnceLock;
fn main()
{
let lock: OnceLock<i32> = OnceLock::new();
let res = lock.get();
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте инициализируем OnceLock через
set и затем получим значение с помощью
метода get:
use std::sync::OnceLock;
fn main()
{
let lock: OnceLock<i32> = OnceLock::new();
let _ = lock.set(12345);
let res = lock.get();
println!("{:?}", res);
}
Результат выполнения кода:
Some(12345)
Пример
Давайте инициализируем OnceLock строкой
и извлечём значение через get:
use std::sync::OnceLock;
fn main()
{
let lock: OnceLock<&str> = OnceLock::new();
let _ = lock.set("abcde");
let res = lock.get();
println!("{:?}", res);
}
Результат выполнения кода:
Some("abcde")
Смотрите также
-
класс
OnceLock,
который хранит значение, инициализируемое один раз -
метод
new,
который создаёт новый экземпляр OnceLock -
метод
get_or_init,
который возвращает значение или инициализирует его -
класс
Once,
который гарантирует однократное выполнение инициализации