小编chi*_*gis的帖子

Go的方法语法的基本原理

好吧,我不得不承认,我根本没有真正使用Go,但我确实只是观察到一些令我感到奇怪的东西,因为一种力求极简的语言和Go所做的所有好东西.如果背后没有合法的理由我会感到惊讶,所以这就是我在寻找的东西.

所以当你有一个方法时,你可以像这样定义它:

func (s *SomeStruct) Foo(x int) { }
Run Code Online (Sandbox Code Playgroud)

但为什么有一个额外的参数列表只是为了"接收器",因为我认为它被称为?它不会是一个更简单,更优雅的设计

func Foo(s *SomeStruct, x int) { }
Run Code Online (Sandbox Code Playgroud)

然后s.Foo(5)只是被转换为对函数的调用Foo(s, 5)

go

8
推荐指数
2
解决办法
694
查看次数

标签 统计

go ×1