我正在查看示例代码:https://golang.org/pkg/net/rpc/
type Arith int
func (t *Arith) Multiply(args *Args, reply *int) error {
*reply = args.A * args.B
return nil
}
从 OOP 的角度来看,Multiply
似乎是一个静态方法,它不访问 Arith
类中的任何数据;因为变量 t
没有被使用。这是否意味着 type Arith int
中的 int
没有任何意义?
最佳答案
这与 OOP 没有任何关系,只是 rpc 包的约定通过从“对象”导出方法来工作(这里的对象表示具有非空方法集的任何值)
int
作为 Arith
的类型很重要,但在这个特定示例中并不重要,因为接收器从未在方法中引用。
所以是的,这个例子有点像静态类,但尽量不要将 Java OOP 思想映射到 Go,因为 Go 非常不同,因为没有“类”或继承。
关于oop - Go语言中的静态类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580253/