方法
Go语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收器(Receiver)。
如果将特定类型理解为结构体或“类”时,接收器的概念就类似于其他语言中的this或者self。
Go语言建立的“接收器”强调方法的作用对象是接收器,也就是类实例,而函数没有作用对象。
为结构体添加方法
面向过程实现方法
package main
import "fmt"
type Bag struct {
items []int
}
//将一个物品放入背包
func setStToBag(b *Bag,item int) {
b.items = append(b.items,item)
}
func main() {
//面向过程实现方法
bag := new(Bag)
setStToBag(bag,1)
fmt.Println(bag) //&{[1]}
setStToBag(bag,2)
fmt.Println(bag) //&{[1 2]}
}
Go语言的结构体方法

每个方法只能有一个接收器
接收器——方法作用的目标
接收器变量:接收器中的参数变量名在命名时,官方建议使用接收器类型名的第一个小写字母,而不是self、this之类的命名。例如,Socket类型的接收器变量应该命名为s,Connector类型的接收器变量应该命名为c等。
接收器类型:接收器类型和参数类似,可以是指针类型和非指针类型。
方法名、参数列表、返回参数:格式与函数定义一致。
接收器根据接收器的类型可以分为指针接收器、非指针接收器。两种接收器在使用时会产生不同的效果。根据效果的不同,两种接收器会被用于不同性能和功能要求的代码中。
最后更新于