oop - Go语言中的静态类方法

标签 oop go

我正在查看示例代码: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/

相关文章:

java - 安卓面向对象编程

c++ - 模板类和派生类

c++ - 标准库对象作为返回类型和函数参数

linux - 如何使用 golang 加密文件夹

regex - 带有非拉丁字符的 Golang 正则表达式

function - 如何直接将函数返回的多个值相加

oop - 铁路票价计算可以使用哪种设计模式?

python - 是不是约定俗成的说函数被调用,方法被调用?

go - Circleci Ubuntu 14.04 构建镜像有多个 gopath 值

pointers - go中的form参数为map时,传入的是什么?