☰
Rust 格式化输出占位符详解
2026/10/13 3:08:30 网站建设 项目流程

文章目录

  • 1.基本占位符
  • 2.格式说明符完整语法
  • 3.常用示例
  • 4.注意事项
  • 5.一句话总结

Rust 的格式化输出由std::fmt模块提供,核心是format!、println!、print!、eprintln!等宏。它们的占位符是{},通过格式说明符控制输出样式。

1.基本占位符

占位符说明示例
{}默认格式,按类型的Displaytrait 输出println!("{}", 42)→42
{:?}Debug 格式,按Debugtrait 输出println!("{:?}", vec![1,2])→[1, 2]
{:#?}美化 Debug 格式,多行缩进常用于结构体调试
{:#x}带前缀的十六进制println!("{:#x}", 255)→0xff
{:#b}带前缀的二进制println!("{:#b}", 5)→0b101

冒号前面是什么?

冒号前面是占位符本身,即{}中的内容。在 Rust 中,占位符由两部分组成:

  • 冒号前面:占位符主体,可以是空的{}(默认格式),也可以是位置参数{0}、{1}或命名参数{name};
  • 冒号后面:格式说明符,用于控制对齐、宽度、精度、进制等输出样式。

例如{0:>10}中,冒号前面的0表示「引用第 0 个参数」,冒号后面的>10表示「右对齐且最小宽度为 10」。当冒号前面为空(即{:?})时,表示「按默认参数顺序引用,但使用?指定的 Debug 格式」。

2.格式说明符完整语法

{:[[填充]对齐][符号][#][0][宽度][.精度][类型]}
部分说明示例
填充填充字符,默认空格{:->10}→--------42
对齐<左对齐,^居中,>右对齐{:<10}、{:^10}、{:>10}
符号+强制显示正号,-默认{:+}→+42
#显示前缀(0x、0b){:#x}→0xff
0用 0 填充{:05}→00042
宽度最小宽度{:8}→42
精度浮点小数位数,或字符串最大长度{:.2}→3.14
类型输出进制或格式x、X、b、o、e、?

3.常用示例

1. 整数进制

println!("{}",255);// 255(十进制)println!("{:x}",255);// ff(小写十六进制)println!("{:X}",255);// FF(大写十六进制)println!("{:b}",5);// 101(二进制)println!("{:o}",8);// 10(八进制)println!("{:#x}",255);// 0xff(带前缀)

2. 浮点数

println!("{}",3.14159);// 3.14159println!("{:.2}",3.14159);// 3.14(保留 2 位小数)println!("{:e}",31415.9);// 3.14159e4(科学计数法)

3. 宽度与对齐

println!("{:>10}",42);// " 42"(右对齐)println!("{:<10}",42);// "42 "(左对齐)println!("{:^10}",42);// " 42 "(居中)println!("{:05}",42);// "00042"(零填充)println!("{:->10}",42);// "--------42"(自定义填充)

4. 位置参数与命名参数

// 位置参数:按顺序引用println!("{0} {1} {0}","a","b");// a b a// 命名参数:按名称引用println!("{name} 今年 {age} 岁",name="Alice",age=30);// 捕获外部变量(Rust 2021+)letx=42;println!("{x}");// 直接使用变量名

5. Debug 格式

#[derive(Debug)]structPoint{x:i32,y:i32}letp=Point{x:1,y:2};println!("{:?}",p);// Point { x: 1, y: 2 }println!("{:#?}",p);// 多行美化格式

4.注意事项

注意点说明
{}需要Displaytrait自定义类型默认没有Display,需手动实现或用{:?}
{:?}需要Debugtrait用#[derive(Debug)]自动派生
精度对字符串的影响{:.3}对字符串表示截取前 3 个字符
宽度是最小值实际内容超过宽度时不会被截断

5.一句话总结

Rust 格式化占位符{}通过{:[[填充]对齐][符号][#][0][宽度][.精度][类型]}控制输出,支持Display、Debug、进制转换、对齐、填充、精度等,是 Rust 中最常用的输出工具。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询