分享
Golang之struct
pyyu · · 1452 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
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中的所有字段在内存是连续的,布局如下:
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1452 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
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中的所有字段在内存是连续的,布局如下: