本文主要是介绍Rust 语言的 println! 宏的格式占位符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、占位符
println!
宏的占位符主要基于 Rust 的格式化语法,它支持多种占位符格式来插入和格式化不同的值。除了 {}
和 {:?}
之外,还有其他几种形式:
-
基本占位符
{}
:用于插入任何实现了Display
trait 的类型的值。 -
调试占位符
{:?}
:用于插入任何实现了Debug
trait 的类型的值,通常用于调试目的,因为它会提供更详细的输出。 -
格式说明符
{:fmt}
:其中fmt
是格式字符串,允许你更详细地控制值的输出。例如,你可以控制整数的基数({:x}
表示十六进制),浮点数的精度({:.2f}
表示两位小数),字符串的宽度和对齐方式等。let num = 255; println!("Hex: {:x}", num); // 输出: Hex: ff
-
命名参数
{name}
:在复杂的格式化字符串中,你可以给占位符命名,并在后面通过format!
宏的参数列表提供值。let name = "Alice"; let age = 30; println!("Name: {name}, Age: {age}", name=name, age=age); // 输出: Name: Alice, Age: 30
-
位置参数
{0}
、{1}
等:你也可以通过位置来引用format!
宏参数列表中的值。位置从 0 开始。let name = "Alice"; let age = 30; println!("Name: {0}, Age: {1}", name, age); // 输出: Name: Alice, Age: 30
-
宽度、精度和填充:你可以在格式说明符中指定字段的宽度、精度和填充字符。
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)
-
二进制、八进制、十进制和十六进制:你可以使用不同的格式说明符来以不同的基数显示整数。
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! 宏的格式占位符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!