格式化字符串时如何漂亮地打印内联变量

Mil*_*iez 2 rust rust-clippy

通常可以通过以下方式打印字符串:println!("{:#?}", foo)其中{:#?}语法将打印值的漂亮值。但我知道也可以将变量直接内联在大括号之间的字符串中,而不是将其列为宏的第二个参数,如下所示:println!("{foo}")

我的问题是 - 我可以结合漂亮的打印语法和内联字符串中的变量吗?

我从Clippy 的文档中找到了简写语法,但我找不到(或理解)如何将其与漂亮打印结合起来(如果可能的话)。

Pit*_*taJ 5

只需将变量名称放在冒号之前即可:

fn main() {
    let foo = 3;
    println!("{foo:#?}");
}
Run Code Online (Sandbox Code Playgroud)

笔记:

  • :#?是漂亮的打印Debug输出
  • :?是正常Debug输出
  • 没有Display输出修饰符

Display用于面向用户的输出

Debug用于调试时的输出,也用于紧急消息