gpt4 book ai didi

go - 为什么在这个 Golang 结构创建中有一个逗号?

转载 作者:IT王子 更新时间:2023-10-29 00:50:00 27 4
gpt4 key购买 nike

我有一个结构:

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)

最佳答案

这就是 go 的工作原理,go 对 commaparentheses 之类的东西很严格。

这个概念的好处是,当添加或删除一行时,它不会影响其他行。假设最后一个逗号可以省略,如果你想在它后面添加一个字段,你必须把逗号加回去。

查看这篇文章:https://dave.cheney.net/2014/10/04/that-trailing-comma .

关于go - 为什么在这个 Golang 结构创建中有一个逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43274850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com