• 2.0 结构体
    • 链接

    2.0 结构体

    go不是像c++、java、ruby和c#一样的面向对象语言。它没有对象和继承的概念。因此也没有很多面向对象语言的特性如多态和重载。

    go提供了结构体,并且可以将一些方法和结构体关联。go也支持一种简单但是更有效的组合形式。总的来说,这是为了让代码更加简洁,但是在一些场合,你会失去一些面向对象语言提供的特性。(需要特别指出的是,通过组合实现继承是一个很古老的方式了,但是go是我使用过的所有语言中,立场最坚定的。)

    尽管你不能像你之前使用的面向对象语言一样使用go,但是你将会注意到,定义一个结构体和定义一个类是很相似的。这里给出了一个简单的例子,定义一个Saiyan结构体:

    1. type Saiyan struct {
    2. Name string
    3. Power int
    4. }

    我们很快会看到怎么往这个结构体添加一个方法,就像类会拥有方法一样。在这之前,我们需要去学习如何声明结构体。

    链接

    • 2.1 声明和初始化
    • 2.2 结构体上的函数
    • 2.3 构造函数
    • 2.4 new
    • 2.5 结构体字段
    • 2.6 组合
    • 2.7 指针类型和值类型
    • 2.8 继续之前