一、struct结构的定义:
type person struct { name string age int }
这样就定义了一个person结构,name是字符串型的姓名;age是int型的年龄。
二、声明一个struct的变量:
var p person
三、赋值:
方法有三种,分别如下:
1、直接赋值
p.name = "xiaoming" p.age = 12
2、按照顺序初始化值
tom := person{"Tom", 20}
3、通过field:value的方式初始化,这样顺序可以随意
john := person{age:21, name:"John"}
四、struct的匿名字段
GO支持只提供字段类型,不提供字段名的声明方式。也就是匿名字段,也叫嵌入字段。(可以用java中的继承理解)
当匿名字段是一个struct(或其他自定义类型)的时候,那么这个struct所拥有的全部字段都被隐式的引入到当前定义的这个struct中。
举个例子:
type Human struct{ name string age int } type Student struct{ Human //匿名字段,那么Student就拥有了Human的所有字段 score int } func main(){ var xiaoming = Student{Human{"xiaoming", 20}, 98} fmt.Println( xiaoming.Human.name); fmt.Println( xiaoming.Human.age); fmt.Println( xiaoming.score); }
有疑问加站长微信联系(非本文作者)