go方法

go中的方法(method),跟函数(function)不是一个概念,一定要区分,它的概念与python中的类方法类似。

go中是没有类的概念的,所以,go要想实现类 多种属性集合的功能的话,必须要使用结构体:

type Person struct {
    Name string
    Age  int
}
其中:Person是结构体名称,Name和Age是结构体的属性,非常类似于python中的类属性

python中要想实现一个类方法很容易,但是go中如何实现一个类似的功能呢?

那就使用方法(method),这个方法跟函数(function)不是一个概念,一定要区分:

type Person struct {
    Name string
    Age  int
}
# 定义类型(python的类)的方法
func (p *Person) GetName() string {
    return p.Name
}

func (p *Person) GetAge() int {
    return p.Age
}

其中,Person相当于python中的类,在go中叫接收器类型,r是Person类型的实例化对象,
GetName()、GetAge()是实例r的方法,也就是python中的类方法,
调用也很简单,r.GetName() 即可。
注意:接收器类型几乎可以是任何类型,但不能是指针类型和函数类型。

原文地址:https://www.cnblogs.com/wt11/p/11863066.html