Rust 语言println! 宏的格式占位符详解
一、占位符
println!
宏的占位符主要基于 Rust 的格式化语法,它支持多种占位符格式来插入和格式化不同的值。除了 {}
和 {:?}
之外,还有其他几种形式:
- 基本占位符
{}
:用于插入任何实现了Display
trait 的类型的值。 - 调试占位符
{:?}
:用于插入任何实现了Debug
trait 的类型的值,通常用于调试目的,因为它会提供更详细的输出。 - 格式说明符
{:fmt}
:其中fmt
是格式字符串,允许你更详细地控制值的输出。例如,你可以控制整数的基数({:x}
表示十六进制),浮点数的精度({:.2f}
表示两位小数),字符串的宽度和对齐方式等。
let num = 255; println!("Hex: {:x}", num); // 输出: Hex: ff
4,命名参数 {name}
:在复杂的格式化字符串中,你可以给占位符命名,并在后面通过 format!
宏的参数列表提供值。
let name = "Alice"; let age = 30; println!("Name: {name}, Age: {age}", name=name, age=age); // 输出: Name: Alice, Age: 30
5.位置参数 {0}
、{1}
等:你也可以通过位置来引用 format!
宏参数列表中的值。位置从 0 开始。
let name = "Alice"; let age = 30; println!("Name: {0}, Age: {1}", name, age); // 输出: Name: Alice, Age: 30
6.宽度、精度和填充:你可以在格式说明符中指定字段的宽度、精度和填充字符。
let num = 123; println!("Number: {:>10}", num); // 输出: Number: 123 (右对齐,总宽度为10) println!("Number: {:<10}", num); // 输出: Number: 123 (左对齐,总宽度为10) println!("Number: {:^10}", num); // 输出: Number: 123 (居中对齐,总宽度为10) println!("Number: {:0>10}", num); // 输出: Number: 0000000123 (右对齐,用0填充至总宽度10)
7.二进制、八进制、十进制和十六进制:你可以使用不同的格式说明符来以不同的基数显示整数。
let num = 255; println!("Dec: {:d}", num); // 输出: Dec: 255 (十进制) println!("Hex: {:x}", num); // 输出: Hex: ff (十六进制) println!("Bin: {:b}", num); // 输出: Bin: 11111111 (二进制) println!("Oct: {:o}", num); // 输出: Oct: 3ff (八进制)
这些格式说明符可以组合使用,以提供几乎无限的格式化选项。如果你需要更复杂的格式化,还可以查阅 Rust 的官方文档来了解更多细节和可用的格式化选项。
二、关于 fmt 占位符
在 Rust 的格式化字符串中,{:fmt}
是一个占位符,其中 fmt
表示具体的格式说明符。这些格式说明符用于控制如何显示不同类型的数据。以下是一些常用的格式说明符的详细清单:
整数类型
- {:d} 或 {}:十进制表示。
- {:x} 或 {:X}:十六进制表示,小写 x 为小写字母,大写 X 为大写字母。
- {:o}:八进制表示。
- {:b}:二进制表示。
- {:#b}、{:#o}、{:#x}、{:#X}:带有前缀的二进制、八进制、十六进制表示(例如 0b1010、0o123)。
- {:0width}:用零填充到指定的宽度。
浮点数类型
- {:f}:默认的小数表示。
- {:.precision} 或 {:f.precision}:指定小数点后的精度。
- {:e}:科学计数法表示。
- {:E}:科学计数法表示,使用大写 E。
- {:g} 或 {:G}:根据数值大小自动选择 f 或 e/E 表示法。
- {:a} 或 {:A}:十六进制浮点数表示。
字符串和字符类型
- {:s}:字符串表示。
- {:c}:字符表示。
- {:width}:指定最小字段宽度。
- {:>width}、{:<width}、{:^width}:指定宽度和对齐方式(右对齐、左对齐、居中对齐)。
- {:.width}:截断到指定宽度。
- {:-}:左对齐,且不使用空格填充。
- {:+}:对于数值类型,总是在正数前面显示加号。
- {: }(包含一个空格):在正数前面添加空格。
其他
{:?}
:调试格式,通常用于显示枚举和复合类型的内部表示。{:p}
:指针的地址表示。{:#}
:对于某些类型(如浮点数),使用替代格式。{:width$}
:位置参数,用于指定宽度等属性的值。
组合使用
格式说明符可以组合使用,例如 {:010.2f}
会将浮点数格式化为宽度至少为10(不足部分用0填充),且小数点后有两位的字符串。
这只是格式说明符的一部分清单,Rust 的格式化系统非常灵活和强大,支持更多的选项和组合。要获取完整的格式说明符清单和更详细的信息,建议查阅 Rust 的官方文档或相关资源。
到此这篇关于Rust 语言的 println! 宏的格式占位符的文章就介绍到这了,更多相关Rust println! 宏的格式占位符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论