struct结构体+方法
现在我们觉得这个结构体太单薄了,它应该有自己的操作方法
上述是通过一个函数来实现的让年龄加,但是现在这个函数和user是没有关联的,就是一个普通的结构外加一个普通的函数
我们的Go提供了另外一种方案:
struct结构体+方法
func addAge(user *User, n int) {
user.age+=n
}
//前面的这个参数表示:这个方法属于哪个struct的,只能传1个struct类型的参数
func (user User) addAge(n int) {
}
u.addAge(8)的最前面不用加&,因为是方法的调用方,不需要做这些额外操作,自动变成引用的状态。
Go语言可以去模拟class
这个method是有特权的,可以在定义的时候决定是要改还是不要改的,传值还是传地址,这个是可以自己决定的,无需外面的代码来配合。