go语言struct

来源:互联网 发布:nba勇士队格林数据 编辑:程序博客网 时间:2024/05/17 22:01

一、struct结构的定义:

type person struct {name stringage  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);}



0 0