Go的学习路程:结构体(一)|Go 主题月

77 阅读1分钟

Go 语言可以通过自定义的方式形成新的类型,结构体就是这些类型中的一种复合类型,结构体是由零个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。

定义

Go 的结构体,给我的感觉同 C 语言的结构体非常相似。通过对一些类型的组合形成一个新的类型,同样成员中没有方法。可以组成结构体的成员也可以是结构体。

type Person struct {
    name string
    age int
}

如上代码定义了一个 Person 的结构体,结构体包括 name 和 age 两个成员。需要注意的是结构体名称在同一包下是要唯一的。结构体内成员名称也必须是唯一的。

初始化

前面只是定义了一个 Person 的结构体的类型,并不是一个实例化的对象。

命令式初始化

package main
import "fmt"

type Person struct {
	name string
	age int
}

func main() {
    p := Person {
        name : "Jack",
        age : 30,
    }
    fmt.Println(p)
}

如上代码以命令式初始化了一个 Person 结构体,即 key : value 的形式为结构体成员赋值。需要注意的是最后一个成员后的“,”不能省略,否则会编译错误。 下图是程序输出

gorunstruct1.png

顺序初始化

func main() {
    p := Person{"Jack", 30}
    fmt.Println(p)
}

如上代码以顺序初始化了一个 Person 结构体。需要注意的是初始化的顺序严格按照结构体定义顺序,并且必须初始化全部成员。