我发现{:?}
在Rust中打印整个数组。我想知道它叫什么,它究竟是如何工作的。它仅限于打印阵列还是可以在别处用于其他目的?
答案 0 :(得分:13)
std::fmt
文档中解释了这一点(以及其余的格式化语法)。
{...}
包围所有格式化指令。 :
从格式化选项中分离正在格式化的事物的名称或序号(在本例中为省略,因此意味着“下一件事”)。 ?
是一个格式化选项,触发使用正在格式化的事物的std::fmt::Debug
实现,而不是默认的Display
特征,或其他特征之一(如{{ 1}}或UpperHex
)。
因此,Octal
格式化传递给格式化宏的“下一个”值,并支持实现{:?}
的任何内容。