同福

Golang的类的使用技巧

在golang里面没有“类”的概念,也没有“类”的语法。但是却提供了一套类似“类”的使用技巧。

类定义

我们以Java的类对比,下面是一个Java的类定义:

class Demo{
    public String Name;
    public Integer Age;
    public Demo(String Name, Integer Age){
        this.Name = Name;
        this.Age = Age;
    }
    public String GetName(){
        return Name;
    }
    public String GetAge(){
        return Age;
    } 
}

在Golang里面就没有class,所以下面是一个Golang的“类”定义:

type Demo struct {
    Name string
    Age int
}

fun (d Demo) GetName() string{
    return d.Name
}

fun (d Demo) GetAge() int{
    return d.Age
}

可以看出在Golang里面的“类”就是一个结构(struct)和两个绑定的函数,而且它还没有构造函数和析构函数。

类使用

在Java里面使用new关键字对类进行实例化,示例如下:

Demo demo = new Demo("福哥", 35);
demo.GetName();
demo.GetAge();

在Golang里面直接实例化“类”对应的结构,示例如下:

demo := Demo{"福哥", 35}
demo.GetName()
demo.GetAge()