Вариант 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