go语言struct

fzk2008 · · 1480 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、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);
}




有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:fzk2008

查看原文:go语言struct

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1480 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传