You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust格式化字符串:如何自定义居中填充的短横线数量?

问题解决:Rust中用变量控制格式化字符串的居中宽度

在Rust的格式化语法里,你尝试的{:-^{margin}}写法不符合规范,导致编译失败。要实现用变量控制短横线填充的总宽度,有两种直接的解决方式:

方式一:使用位置参数

通过位置索引引用变量,在格式说明符里用数字$指定宽度:

let margin: usize = 15;
println!("{:-^1$}", "Hi :(", margin);

这里的1$表示引用第二个参数(索引从0开始,第一个参数是"Hi :(",第二个是margin)。

方式二:使用命名参数

给宽度参数指定名称,在格式说明符里用名称$引用:

let margin: usize = 15;
println!("{:-^width$}", "Hi :(", width = margin);

这种写法可读性更强,适合参数较多的场景。

原理说明

Rust的println!等格式化宏中,格式说明符(即:后面的部分)内部的宽度/精度参数,必须通过$语法引用外部传递的参数,而不能直接写变量名。你之前的写法混淆了格式化占位符的命名参数语法(外部的{margin})和格式说明符内部的参数引用规则,所以无法编译。

内容的提问来源于stack exchange,提问作者João Pedro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:27:14