我有一个Cow
:
use std::borrow::Cow; // Cow = clone on write
let example = Cow::from("def")
我想从中获取def
,以便将其附加到另一个String
中:
let mut alphabet: String = "ab".to_string();
alphabet.push_str("c");
// here I would like to do:
alphabet.push_str(example);
这种方法行不通,而且我没有在Cow
中看到获取&str
或String
的适当方法。
String
”中,into_owned
会消耗Cow
并仅在Cow::Borrowed
的情况下分配内存,而to_string
和as_ref + to_owned
则保持Cow
不变并无条件地分配内存。它们对于Cow::Borrowed
是等效的,但对于Cow::Owned
类似于移动和克隆的区别。 - L. F.