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

Chr*_*oph 39 string-formatting rust

我想写这个

write!(f, "{ hash:{}, subject: {} }", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

但由于花括号对于格式化具有特殊意义,因此很明显我无法在没有转义的情况下放置外部花括号.所以我试图逃避它们.

write!(f, "\{ hash:{}, subject: {} \}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

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

文字字符{,}或#可以包含在字符串中,前面加上\字符.由于\已经是Rust字符串中的转义字符,因此使用此转义的字符串文字将类似于"\ {".

所以我试过了

write!(f, "\\{ hash:{}, subject: {} \\}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

但那也行不通.:-(

nos*_*nos 61

您可能正在阅读一些过时的文档(例如,对于Rust 0.9)

作为防锈1.0,逸出的方式{}与另一个{}

write!(f, "{{ hash:{}, subject: {} }}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

文字字符{}可通过用相同的字符之前它们被包括在一个字符串.例如,{角色将被转义{{并且}角色将被转义}}.

  • 这与Python中的相同 (4认同)