Golang在面向对象方面与其他语言的区别
Golang中没有类(class)的概念,但是有结构(struct)的概念。在其他语言(比如C++)中,属性是与方法绑定在一起的,而在go中属性与方法是松耦合的。
一个简单的结构:
type Student struct {
name string
id string
score int
}
方法
方法写在结构的外面,比如我们要为Student对象添加getter和setter,我们应该在Student结构外添加如下代码:
func (self *Student) SetName(name string) {
self.name = name
}
func (self *Student) SetId(id string) {
self.id = id
}
func (self *Student) SetScore(score int) {
self.score = score
}
func (self *Student) Name() string {
return self.name
}
func (self *Student) Id() string {
return self.id
}
func (self *Student) Score() int {
return self.score
}
继承
继承是通过在结构里嵌入其他结构来实现对其他结构的继承的。比如以下代码就是Car继承了Object,拥有了Object中定义的字段:
p