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

Вариант Borrowed класса Cow

Вариант Borrowed класса Cow хранит заимствованную ссылку на данные. Он используется, когда значение не нужно клонировать до тех пор, пока не потребуется его изменение. Параметром вариант принимает ссылку на данные типа &'a B.

Синтаксис

Cow::Borrowed(&value)

Пример

Давайте создадим Cow с вариантом Borrowed и выведем его значение:

use std::borrow::Cow; fn main() { let s = "abcde"; let cow: Cow<str> = Cow::Borrowed(s); println!("{}", cow); }

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

"abcde"

Пример

Давайте проверим, что вариант Borrowed не клонирует данные, а хранит ссылку:

use std::borrow::Cow; fn main() { let s = String::from("abcde"); let cow: Cow<str> = Cow::Borrowed(&s); println!("{}", cow); println!("{}", s); }

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

"abcde" "abcde"

Пример

Давайте изменим Cow, созданный через вариант Borrowed, с помощью метода to_mut:

use std::borrow::Cow; fn main() { let s = "abcde"; let mut cow: Cow<str> = Cow::Borrowed(s); cow.to_mut().push_str("12345"); println!("{}", cow); }

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

"abcde12345"

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

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