假设我定义了一个带有字符串字段的 struct .该字段应:

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

我该如何在Rust中表达这个("&strString")呢?

推荐答案

有一个内置的类型,std::borrow::Cow(C,On W的缩写).通过指定Cow<'a, str>,可以存储&'a strString.Cowgo 引用str,这样您就可以调用str个方法,并提供了to_mut()into_owned()个方法来满足您需要调用String个方法的需要.

Rust相关问答推荐

如何在 struct 中填充缓冲区并同时显示它?

如何为utoipa中的可选查询参数生成OpenAPI模式?

防止cargo test 中的竞争条件

如何删除Mac Tauri上的停靠图标?

如何循环遍历0..V.len()-1何时v可能为空?

替换可变引用中的字符串会泄漏内存吗?

像这样的铁 rust 图案除了‘选项’之外,还有其他 Select 吗?

UnsafeCell:它如何通知 rustc Select 退出基于别名的优化?

Rust 如何将链表推到前面?

返回迭代器考虑静态生命周期类型

OpenGL 如何同时渲染无纹理的四边形和有纹理的四边形

为什么可以在迭代器引用上调用 into_iter?

试图理解 Rust 中的可变闭包

我如何将 google_gmail1::Gmail> 传递给线程生成?

在 RefCell 上borrow

用逗号分隔字符串,但在标记中使用逗号

为什么分配对变量的引用使我无法返回它

深度嵌套枚举的清洁匹配臂

Rust 内联 asm 中的向量寄存器:不能将 `Simd` 类型的值用于内联汇编

如何将 while 循环内的用户输入添加到 Rust 中的向量?