为了账号安全,请及时绑定邮箱和手机立即绑定

带有方法/函数的 Golang 逗号

带有方法/函数的 Golang 逗号

Go
一只斗牛犬 2021-09-27 15:38:35
为什么我们允许在方法声明、参数列表或返回列表中的接收器末尾放置逗号。像这样:func (ds *dasa,) yoooooolo (dsa dasa,) (dsaa dasa,)为什么这是允许的?结尾处都是逗号吗?
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

Golang 允许在许多声明后使用尾随逗号。


这可能是语言设计者的一个明确的设计选择,以便更宽容不相关的语法错误;然而,只有他们可以解释他们的动机。


func (f *Foo,) Bar(x, y int,) (int, error,) { //...

f.Bar(1, 2, 3,)

xs := []int{1, 2, 3,}

事实上,在一些多行文字声明中,它需要尾随逗号(大概是为了简化元素的重新排序):


ys := []int{

  1,

  2, // <-- required comma.

}

m := map[string]int{

  "foo": 1,

  "bar": 2, // <-- required comma.

}

请注意,该go fmt命令会自动删除无关的、可选的尾随逗号。在构建代码之前,您应该始终运行该工具。


查看完整回答
反对 回复 2021-09-27
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

当您有一个带有许多参数的函数时,有时您希望将函数头分布在多行中,如下所示:


func foo(

    int arg1,

    string arg2,

    []byte arg3,

    error arg4,

 ) {

    /* implementation goes here */

 }

尾随逗号允许以更正交的方式写下此参数列表。


查看完整回答
反对 回复 2021-09-27
  • 2 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信