方法和接收者:Go语言中的方法是一种作用于特定类型变量的函数。
这种特定类型变量就叫接收者,类似于其他语言中的this或者self。
方法与函数的区别:
函数不属于任何类型
方法属于特定类型
方法的定义格式:
func (接收者变量名 接收者type) 方法名称 (参数列表) (返回参数){
函数体
}
接收者变量名:官方建议使用接收者type的首字母小写
接收者type:与参数类似,指针或非指针
方法名称:一般首字母大写
type people struct{
name string
age int
}
//指针接收者
func (p *people) person(newName string , newAge int){
p.name = newName
p.age = newAge
}
指针类型的接收者使用场景
- 需要改接收者的值
- 接收者是拷贝代价较大的对象
- 保证一致性,如果某个方法使用了指针接收者,那其他方法也应使用指针接受者
接收者的类型可以是任何类型