Rust中如何在format!宏内使用变量作为宽度说明符?
你可以直接使用Rust格式化宏内置的动态参数语法实现需求,把固定宽度数值替换为变量名+$的格式即可,修改后的可运行代码如下:
fn main() { let x = 3usize; let y = format!("{:0>x$}", 11); println!("{}", y); // 输出结果仍为 011 }
除此之外还有另外两种常用的动态参数写法,你可以根据场景选择:
- 按参数位置引用:用数字+$指代后续参数的索引位置(索引从0开始计数),不需要和作用域内变量同名:
这里let y = format!("{:0>1$}", 11, x);1$表示取format!第二个参数(索引为1)的x作为宽度值。 - 显式命名参数:适合存在多个动态格式参数的场景,代码可读性更高:
let y = format!("{:0>width$}", 11, width = x);
内容的提问来源于stack exchange,提问作者Just a learner
相关产品推荐
相关产品推荐

