РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1198 of 1245 menu

Метод write

Метод write класса MaybeUninit записывает значение в неинициализированную память, не читая и не удаляя предыдущее содержимое. Параметром метод принимает значение, которое нужно записать, а возвращает изменяемую ссылку &mut T на только что записанные данные. Этот метод безопасен, поскольку запись значения в MaybeUninit не требует чтения неинициализированной памяти.

Синтаксис

MaybeUninit::write(&mut self, val: T) -> &mut T

Пример

Давайте создадим неинициализированную переменную и запишем в неё число 12345:

use std::mem::MaybeUninit; fn main() { let mut x = MaybeUninit::<i32>::uninit(); let res = x.write(12345); println!("{}", res); }

Результат выполнения кода:

12345

Пример

Давайте запишем строку "abcde" в неинициализированную память и прочитаем её:

use std::mem::MaybeUninit; fn main() { let mut x = MaybeUninit::<&str>::uninit(); let res = x.write("abcde"); println!("{}", res); }

Результат выполнения кода:

"abcde"

Пример

Давайте запишем вектор vec![1, 2, 3, 4, 5] в неинициализированную память и выведем его:

use std::mem::MaybeUninit; fn main() { let mut x = MaybeUninit::<Vec<i32>>::uninit(); let res = x.write(vec![1, 2, 3, 4, 5]); println!("{:?}", res); }

Результат выполнения кода:

[1, 2, 3, 4, 5]

Смотрите также

  • класс MaybeUninit,
    который представляет неинициализированную память
  • метод uninit,
    который создаёт неинициализированное значение
  • метод assume_init,
    который извлекает значение из MaybeUninit
  • функция write,
    которая записывает значение по сырому указателю
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить