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/