我希望在向用户显示字符串之前先对其进行0-pad,例如.
let x = 1234;
println!("{:06}", x); // "001234"
但是,我希望输出字符串的长度是可变的,例如,它可以由用户的命令行参数设置:
let x = 1234;
let width = 6;
println!("{:0*}", width, x); //fails to compile
// error: invalid format string: expected `'}'`, found `'*'`
与精度不同,0填充似乎不支持*
来指定宽度.
我不是在寻找涉及手动填充的解决方案,因为重新实现std::fmt
的一部分似乎很尴尬.