go的函数参数为什么还有只声明指针没有给对应名字的?

看过书籍里有一种写法, func(*Person) int { return 1 }

为什么Person会有上面这种写法? 不是应该像下面这样写的吗? func(person Person) int { return 1 }

已邀请:

sheepbao - https://sheepbao.github.io 爱go,爱编程,领域网络开发,流媒体、分布式、网络加速

赞同来自: yaohcn

(Method_declarations)[https://golang.google.cn/ref/spec#Method_declarations] 那是go方法的声明,spec讲了If the receiver's value is not referenced inside the body of the method, its identifier may be omitted in the declaration. The same applies in general to parameters of functions and methods.
意思就是,接收器的值并没有在方法內使用的话,可以忽略。这规则一样适用于函数的参数。

swconfidence - golang爱好者

赞同来自:

好的,多谢您的答疑解惑,明白了

要回复问题请先登录注册