我想写这个

write!(f, "{ hash:{}, subject: {} }", self.hash, self.subject)

但是,由于大括号对格式有特殊的意义,很明显,我不能像这样放置外部大括号而不逃逸.所以我试图逃离他们.

write!(f, "\{ hash:{}, subject: {} \}", self.hash, self.subject)

Rust也不喜欢这样.然后我读到:

字符串中的文字字符{、}或#可以在前面加上\字符.因为\已经是Rust字符串中的转义字符,所以使用此转义的字符串文字看起来像"\{".

所以我试过了

write!(f, "\\{ hash:{}, subject: {} \\}", self.hash, self.subject)

但这也不起作用-(

推荐答案

您可能正在阅读一些过时的文档(例如 rust 0.9)

从1.0the way to escape { and } is with another { or }开始

write!(f, "{{ hash:{}, subject: {} }}", self.hash, self.subject)

文本字符{}可以通过以下方式包含在字符串中:

Rust相关问答推荐

给定使用newype习语定义的类型上的铁 rust Vec,有没有方法获得底层原始类型的一部分?

如何在Rust中实现Functor trait?

使用pyo3::Types::PyIterator的无限内存使用量

如何使用syn插入 comments ?

通过使用光标拖动角来绕其中心旋转矩形

防止cargo test 中的竞争条件

交换引用时的生命周期

创建Rust中元对象协议的动态对象 Select /重新分配机制

如何向下转换到MyStruct并访问Arc Mutex MyStruct实现的方法?

获取与父字符串相关的&;str的原始片段

为什么比较Option<;字符串>;具有常数Option<&;str>;需要显式类型转换吗?

`use` 和 `crate` 关键字在 Rust 项目中效果不佳

将泛型中的 Box 转换为 rust 中的 Box

存储返回 impl Trait 作为特征对象的函数

返回迭代器的特征

如何连接 Rust 中的相邻切片

当 T 不是副本时,为什么取消引用 Box 不会抱怨移出共享引用?

为什么 match 语句对引用类型比函数参数更挑剔?

Rust 跨同一文件夹中文件的可见性

Rust 为什么 (u32, u32) 的枚举变体的大小小于 (u64)?