类似的问题讨论过 when-and语句应该如何排版? - #14,来自 twlz0ne 也是你提问的
一行一个 steq
更安全,类似 trailing comma 的问题。一行作为一个完整的单元,复制/粘贴/删除都不容易出错,降低了出 bug 的风险,比如:
// bad
[
1,
2
]
这段代码如果末尾追加一行 3
,忘记给 2
加逗号的概率是很大的,然后就出错了:
// bad
[
1,
2
3
]
所以因该这么写:
// good
[
1,
2, // <--- 末尾必须有逗号
]
很多语言支持这么写,但不是强制,需要额外的工具来保证,比如 eslint 开启 dangle-comma 才能检测末行的末尾是否缺失逗号。而 go 则从语言层面做了要求:
fmt.Printf(
"%s, %s",
"foo",
"bar" // <--- 末尾必须有逗号
)
编译器直接报错。