为什么我们要在结构的类型定义之外声明方法?例如:
type antenna struct {
name string
length float32
girth float32
bloodtype string
}
func (p *antenna) extend() {
p.length += 10
}
在我看来,该方法可能是结构的一部分?(让我们暂时忽略结构应该是值类型)
type antenna struct {
name string
length float32
girth float32
bloodtype string
func extend() {
length += 10
}
}
这将更类似于传统的 OOP。除了“结构是值类型而类是引用类型”之外,我没有找到任何很好的解释为什么它是这样完成的。我知道其中的区别,但这对我来说不是一个令人满意的答案。无论如何都必须像这样调用该方法:
var x = antenna()
x.extend()
那么将结构和方法分开有什么意义呢?让它们在代码中直观地组合在一起——就像在典型的 OOP 语言中一样——对我来说似乎有用吗?
大话西游666
相关分类