假设我定义了一个带有字符串字段的 struct .该字段应:
- 能够持有字符串所有权(例如,当我想用生成的值
format
填充它时), - 还可以保存一个不可变的引用(如果字符串已经在其他地方拥有,而我不想浪费地克隆它).
我该如何在Rust中表达这个("&str
或String
")呢?
假设我定义了一个带有字符串字段的 struct .该字段应:
format
填充它时),我该如何在Rust中表达这个("&str
或String
")呢?
有一个内置的类型,std::borrow::Cow
(C,On W的缩写).通过指定Cow<'a, str>
,可以存储&'a str
和String
.Cow
go 引用str
,这样您就可以调用str
个方法,并提供了to_mut()
和into_owned()
个方法来满足您需要调用String
个方法的需要.