Как избежать фигурных скобок в строке формата в Rust
Я хочу написать это
write!(f, "{ hash:{}, subject: {} }", self.hash, self.subject)
Но так как фигурные скобки имеют особое значение для форматирования, ясно, что я не могу разместить внешние фигурные фигурные скобки, не выходя из нее. Поэтому я попытался сбежать от них.
write!(f, "\{ hash:{}, subject: {} \}", self.hash, self.subject)
Русту тоже не нравится. Затем я прочитал следующее:
Литеральные символы {,} или # могут быть включены в строку, предшествуя им символом \. Так как\уже является escape-символом в строках Rust, строковый литерал, использующий этот escape, будет выглядеть как "\ {".
Итак, я попробовал
write!(f, "\\{ hash:{}, subject: {} \\}", self.hash, self.subject)
Но это тоже не работает.: - (
Ответы
Ответ 1
Возможно, вы читаете некоторые устаревшие документы (например, для ржавчины 0,9)
текущий путь для форматирования строк с точки зрения ржавчины 0.11 - это escape {и} с другим {или}
write!(f, "{{ hash:{}, subject: {} }}", self.hash, self.subject)
Литеральные символы {и} могут быть включены в строку посредством предшествующие им с тем же характером. Например, символ { экранируется символом {{и}} с помощью}}.