我发现{:?}张画的是一整排Rust 的图案.我想知道它叫什么,它到底是如何工作的.它是否仅限于打印数组,或者也可以用于其他目的?

推荐答案

这一点在std::fmt文档中进行了解释(以及其他格式语法).

{...}包含所有格式化指令.:将被格式化对象的名称或序号(在本例中为omitted,因此表示"下一个对象")与格式化选项分开.?是一个格式化选项,它触发正在格式化的对象的std::fmt::Debug实现的使用,而不是默认的Display特征或其他特征之一(如UpperHexOctal).

因此,{:?}格式化传递给格式化宏的"下一个"值,并支持实现Debug的任何内容.

Rust相关问答推荐

如何在Rust中获得高效的浮点最大值

将JSON密钥转换为Polars DataFrame

MacOS(AARCH64)上Ghidra中的二进制补丁导致进程终止

在Rust中,在实现特征`Display`时,如何获取调用方指定的格式?

在析构赋值中使用一些现有绑定

如何修复数组中NewType导致的运行时开销

为什么TcpListener的文件描述符和生成的TcpStream不同?

是否可以在不直接重复的情况下为许多特定类型实现一个函数?

如何将一个矩阵的列分配给另一个矩阵,纳尔代数?

带引脚和不带引脚的比较功能

sha256 摘要仅适用于 &*

Rust 异步循环函数阻塞了其他future 任务的执行

Rust与_有何区别?

Rust编译器通过哪些规则来确保锁被释放?

std::vector::shrink_to_fit 如何在 Rust 中工作?

具有在宏扩展中指定的生命周期的枚举变体数据类型

如何判断服务器是否正确接收数据

`移动||异步移动{...}`,如何知道哪个移动正在移动哪个?

强制特征仅在 Rust 中的给定类型大小上实现

提取 struct 生成宏中字段出现的索引