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

Метод to_owned

Метод to_owned создаёт собственную (владеющую) копию данных из заимствованного значения. Он вызывается на срезе или ссылке и возвращает новый объект, который владеет своими данными. Параметров метод не принимает.

Метод to_owned является частью трейта ToOwned. Для строк &str он возвращает String, для срезов &[T] - вектор Vec<T>, где T реализует трейт Clone.

Синтаксис

value.to_owned()

Пример

Давайте преобразуем строковый срез "abcde" в собственную строку String:

fn main() { let s = "abcde"; let owned: String = s.to_owned(); println!("{}", owned); }

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

"abcde"

Пример

Давайте преобразуем срез чисел в собственный вектор:

fn main() { let slice: &[i32] = &[1, 2, 3, 4, 5]; let owned: Vec<i32> = slice.to_owned(); println!("{:?}", owned); }

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

[1, 2, 3, 4, 5]

Пример

Давайте покажем, что после получения собственной копии исходные данные можно удалить, а копия останется доступной:

fn main() { let owned: String = { let s = "12345"; s.to_owned() }; println!("{}", owned); }

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

"12345"

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

  • метод to_string,
    который преобразует значение в строку String
  • метод into,
    который выполняет преобразование между типами
  • метод from,
    который создаёт значение из другого типа
  • метод as_ref,
    который преобразует значение в ссылку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить