Rust std::fmt格式化输出不符合预期,如何调整得到指定对齐的打印结果
错误原因
- 你将预期输出中的
A1拆成了'A'、1两个独立参数传入,且两个参数之间没有设置间隔宽度,导致二者直接拼接在一起,跟随在前一个参数后 - 数字
2使用的{:5}格式化规则默认是右对齐占5字符宽度,会在2前面补4个空格,不符合2紧跟在->后的要求 - 数字
1被设置了{:5}的宽度规则,会在1后补4个空格,最终呈现出1B1带前置空格的错误效果 - 格式化字符串开头没有显式加入
->前缀(你实际输出里的->应该是示例标注时额外添加的)
修复方案
把A和1合并为一个字符串参数,调整对齐规则为左对齐即可,正确代码如下:
// {:<5} 表示左对齐,占5个字符宽度,内容后面补空格 println!("->{:<5}{:<5}{:<5}{}", 2, "A1", "B1", "Test");
运行后输出就和你预期的完全一致:
->2 A1 B1 Test
内容的提问来源于stack exchange,提问作者Simon Rechermann
相关产品推荐
相关产品推荐

