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

Метод into_owned

Метод into_owned преобразует умный указатель Cow в собственное значение типа String или Vec. Если внутри Cow хранится заимствованный вариант Borrowed, метод выполняет клонирование данных и возвращает owned-значение. Если же внутри уже хранится вариант Owned, метод просто извлекает его без дополнительного клонирования. Параметров метод не принимает.

Синтаксис

cow.into_owned()

Пример

Давайте создадим Cow с заимствованным значением и преобразуем его в owned-строку:

use std::borrow::Cow; fn main() { let borrowed: Cow<str> = Cow::Borrowed("abcde"); let owned: String = borrowed.into_owned(); println!("{}", owned); }

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

"abcde"

Пример

Давайте создадим Cow с owned-значением и преобразуем его в owned-строку:

use std::borrow::Cow; fn main() { let owned_cow: Cow<str> = Cow::Owned(String::from("12345")); let owned: String = owned_cow.into_owned(); println!("{}", owned); }

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

"12345"

Пример

Давайте применим into_owned к Cow с вектором чисел:

use std::borrow::Cow; fn main() { let borrowed: Cow<[i32]> = Cow::Borrowed(&[1, 2, 3, 4, 5]); let owned: Vec<i32> = borrowed.into_owned(); println!("{:?}", owned); }

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

[1, 2, 3, 4, 5]

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

  • тип Cow,
    который представляет clone-on-write умный указатель
  • метод to_owned,
    который создает owned-значение из ссылки
  • вариант Borrowed,
    который хранит заимствованное значение внутри Cow
  • вариант Owned,
    который хранит собственное значение внутри Cow
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить