我有一個結構:爲什麼在這個Golang結構創建中有逗號?
type nameSorter struct {
names []Name
by func(s1, s2 *Name) bool
這是在該方法中使用
。這個逗號發生了什麼?如果我刪除它,則會出現語法錯誤。
func (by By) Sort(names []Name) {
sorter := &nameSorter{
names: names,
by: by, //why does there have to be a comma here?
}
sort.Sort(sorter)
此外,下面的代碼工作得很好,似乎更清楚。
func (by By) Sort(names []Name) {
sorter := &nameSorter{names, by}
sort.Sort(sorter)
更多的上下文這段代碼是一系列聲明的一部分,看起來像這樣的自定義類型的排序:
By(lastNameSort).Sort(Names)
看到這個可能重複:?如何打破代碼Golang長行(http://stackoverflow.com/questions/34846848/how-to-break-a-long-line-of-code- in-golang/34848928#34848928) – icza
所以逗號需要在那裏,因爲「}」之前的換行符。感謝您的鏈接。 – John
這基本上是允許你(實際上鼓勵你)省略分號的副作用。 IIRC,錯誤以前是意想不到的分號,因爲編譯器在編譯時在行尾添加了一個分號,這會導致語法無效。 – Adrian