将 &str 或 String 保存在变量中

Max*_*Max 3 rust

假设我定义一个带有字符串字段的结构。该领域应该:

  1. 能够保留字符串所有权(例如,当我想用​​生成的值填充它时format),
  2. 还能够保存不可变的引用(如果字符串已在其他地方拥有并且我不想浪费地克隆它)。

我如何用Rust 表达这个(“要么”)&strString

Cha*_*man 8

有一个内置类型( C lone On W ritestd::borrow::Cow的缩写)。通过指定,您可以存储以及。derefs 以便您可以调用方法,并在需要调用方法时提供和方法。Cow<'a, str>&'a strStringCowstrstrto_mut()into_owned()String