Go语言结构体

结构体

结构体(struct) 是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员。

结构体的声明

type Person struct {
    name string
    age  int 
}

初始化

// 使用字段创建
p := Person{
    name: "Tom",
    age:  20,
}
// 不使用字段创建
p2 := Person{"lilei", 30}
fmt.Printf("p: %v\n", p)
fmt.Printf("p2: %v\n", p2)
//匿名结构体
p3 := struct {
    name string
    age  int
}{"hanmeimei", 18}
fmt.Printf("p3: %v\n", p3)

结构体没有初始化时,int默认为0,string默认为空

使用点属性获取结构体里面的字段,如p2.name

指向结构体的指针

p :=Person{"lilei",20}
p2 :=&p
fmt.Printf("p2: %v\n", *p2)

结构体嵌套

type Person struct {
    name string
    age  int
    }
type FlyPerson struct {
    Person
    fav string
    }
    func main() {
    p := Person{"leilei", 18}
    fp := FlyPerson{p, "Play"}
    fmt.Printf("fp: %v\n", fp)
    fmt.Printf("fp.name: %v\n", fp.name)
    }

结构体定义方法

    func (p Person) ShowPerson() {
    fmt.Printf("p: %v\n", p.name)
    }
//调用
    p := Person{"leilei", 18}
    p.ShowPerson()

Go语言结构体
http://www.jcwit.com/article/128/
作者
Carlos
发布于
2022年7月17日
许可协议