带有方法/函数的 Golang 逗号

为什么我们允许在方法声明、参数列表或返回列表中的接收器末尾放置逗号。像这样:

func (ds *dasa,) yoooooolo (dsa dasa,) (dsaa dasa,)

为什么这是允许的?结尾处都是逗号吗?


一只斗牛犬
浏览 196回答 2
2回答

慕尼黑8549860

Golang 允许在许多声明后使用尾随逗号。这可能是语言设计者的一个明确的设计选择,以便更宽容不相关的语法错误;然而,只有他们可以解释他们的动机。func (f *Foo,) Bar(x, y int,) (int, error,) { //...f.Bar(1, 2, 3,)xs := []int{1, 2, 3,}事实上,在一些多行文字声明中,它需要尾随逗号(大概是为了简化元素的重新排序):ys := []int{&nbsp; 1,&nbsp; 2, // <-- required comma.}m := map[string]int{&nbsp; "foo": 1,&nbsp; "bar": 2, // <-- required comma.}请注意,该go fmt命令会自动删除无关的、可选的尾随逗号。在构建代码之前,您应该始终运行该工具。

扬帆大鱼

当您有一个带有许多参数的函数时,有时您希望将函数头分布在多行中,如下所示:func foo(&nbsp; &nbsp; int arg1,&nbsp; &nbsp; string arg2,&nbsp; &nbsp; []byte arg3,&nbsp; &nbsp; error arg4,&nbsp;) {&nbsp; &nbsp; /* implementation goes here */&nbsp;}尾随逗号允许以更正交的方式写下此参数列表。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go