【发布时间】:2015-03-30 18:22:59
【问题描述】:
为什么我们允许在方法声明、参数列表或返回列表中的接收者末尾放置逗号。像这样:
func (ds *dasa,) yoooooolo (dsa dasa,) (dsaa dasa,)
为什么允许这样做?结尾都是逗号?
【问题讨论】:
-
你总是运行
gofmt,不是吗?那么这不是问题,因为多余的逗号被删除了。您是否查看过spec 以了解他们在哪里允许这样做? -
golang.org/ref/spec#Signature 正在阅读规范,我偶然发现了它。我的问题是为什么...?为什么我们可以这样做,它的目的是什么。
-
IMO,如果您在提问之前已经进行了适当的研究,那么我认为您应该在问题本身中包含相关链接,以 (a) 明确并 (b) 给感兴趣的各方或那些试图回答一个开始的地方。
-
尾随逗号使重新排序更容易,允许将括号移动到下一行,更容易在最后一个参数添加注释而不破坏代码块括号,对版本控制系统更友好,更容易编写代码生成器。显然,单行函数声明没有意义。
-
Golang 有你必须遵守的风格规则(这就是 gofmt 存在的原因),所以我不确定为什么这主要是基于意见而关闭的。