Golang之struct

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

1.用来定义复杂数据结构

2.struct里面可以包含多个字段(属性)

3.struct类型可以定义方法,注意和函数的区分。

4.struct类型是值类型

5.struct类型可以嵌套

6.Go语言没有class类型,只有struct类型

package main import "fmt" //声明结构体 type Student struct { Name string Age int Score int } func main() { //struct字段访问,使用“点”访问 var stu Student stu.Name = "yuchao" stu.Age = 18 stu.Score = 99 fmt.Printf("name=%s age=%d scrore=%d", stu.Name, stu.Age, stu.Score) }

定义struct的三种形式:

package main import "fmt" //声明结构体 //字段名和函数名一样,首字母大写,在包外可以访问 type Student struct { Name string Age int Score float32 } func main() { //struct字段访问,使用“点”访问 var stu Student //var stu *Student = new(Student) //var stu *Student = &Student{ } stu.Name = "yuchao" stu.Age = 18 stu.Score = 99 //fmt.Println(stu) //默认结构 {yuchao 18 99.1} //fmt.Printf("name=%s age=%d scrore=%d", stu.Name, stu.Age, stu.Score) var stu1 *Student = &Student{ Age: 20, Name: "chao", } var stu3 = Student{ Age: 20, Name: "hua", } fmt.Println(stu1) fmt.Println(stu3.Name) fmt.Printf("Name:%p\n", &stu.Name) fmt.Printf("age:%p\n", &stu.Age) fmt.Printf("score:%p\n", &stu.Score) }
定义结构体

 

var stu Student var stu *Student = new(Student) var stu *Student = &Student{ }

struct的内存布局,struct中的所有字段在内存是连续的,布局如下:

 


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

本文来自:博客园

感谢作者:pyyu

查看原文:Golang之struct

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

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