如何在Rust中转义格式字符串中的大括号



我想写这个

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)

从Rust 1.0开始,逃离{}的方法是使用另一个{}

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

文字字符CCD_ 5和CCD_在它们前面有相同的字符。例如,{字符用CCD_ 8转义并且用}}转义CCD_。

最新更新