建议详情
我知道这已经非常接近于无意义的争论,但我认为这个建议值得一提,即使最后可能会被否决。
这里有一个相当痛苦的例子,来源于一个稍微不那么痛苦的东西。
package main
func main() {
xs := []int{0, 1, 2}
n := 1
ys := make([]int, 0, len(xs)-(n-1))
for range len(xs)-(n-1) {
ys = append(ys, len(xs)-(n-1))
}
}
当通过gofmt时,这变成了
package main
func main() {
xs := []int{0, 1, 2}
n := 1
ys := make([]int, 0, len(xs)-(n-1))
for range len(xs) - (n - 1) {
ys = append(ys, len(xs)-(n-1))
}
}
在我看来,这似乎更糟。范围关键字后的术语形成了紧密的概念群集,但文本是分散的。
我没有看到关于#61405的任何讨论,所以这可能是一个意外的结果。
我建议将空格设置为与函数调用相同。我很乐意尝试实现它。
3条答案
按热度按时间vmpqdwk31#
The formatting is consistent with when the expression is used outside of
range
:zf9nrax12#
gofmt在没有类型信息的情况下可以正常工作,所以我不知道是否有任何合理的方式来实现这个改变,即使我们想要它。
CC @griesemer
jgovgodb3#
我需要再确认一下,但我相信这种格式完全取决于表达式,不需要类型信息。所以假设大家对此达成一致,应该是可以实现的(而且做起来很简单)。