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

关于rustfmt配置变量块赋值左大括号换行的技术咨询

关于rustfmt配置变量块赋值左大括号换行的技术咨询

嘿,我最近在折腾rustfmt的代码格式化规则时,碰到了个有点挠头的小问题,后来摸索出了解决办法,跟大家分享下:

我一直希望代码里这种块赋值的写法:

let x = {
    let y = 10;
    5
};

能始终保持固定格式——左大括号跟=在同一行,左右大括号保持垂直对齐的结构,不管什么场景都别乱改换行。

最开始我在rustfmt.toml里加了这些配置,结果完全没达到预期:

unstable_features = true
brace_style = "AlwaysNextLine"

后来才反应过来,我选的brace_style取值完全搞反了!AlwaysNextLine的作用是强制所有大括号都单独占一行,刚好和我想要的效果背道而驰,难怪配置了没变化。

想要实现目标格式,有两种靠谱的配置方案:

  • 方案一:用标准大括号风格配置
    把brace_style改成"SameLineWherePossible",这是rustfmt的默认风格之一,它会尽可能让大括号和前面的内容保持在同一行,完美适配这种块赋值的场景:
brace_style = "SameLineWherePossible"
  • 方案二:单独针对块表达式配置(需开不稳定特性)
    如果只想调整块表达式的大括号风格,不想影响函数、结构体等其他代码的大括号格式,可以在开启unstable_features = true的前提下,用block_brace_style这个专属配置,把它设为"SameLine":
unstable_features = true
block_brace_style = "SameLine"

这两种配置都能让rustfmt乖乖保持我想要的块赋值代码格式,亲测有效!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:09:40