為什么我們允許在方法聲明、參數列表或返回列表中的接收器末尾放置逗號。像這樣: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命令會自動刪除無關的、可選的尾隨逗號。在構建代碼之前,您應該始終運行該工具。

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
當您有一個帶有許多參數的函數時,有時您希望將函數頭分布在多行中,如下所示:
func foo(
int arg1,
string arg2,
[]byte arg3,
error arg4,
) {
/* implementation goes here */
}
尾隨逗號允許以更正交的方式寫下此參數列表。
- 2 回答
- 0 關注
- 228 瀏覽
添加回答
舉報
0/150
提交
取消