61396-Go语言程序设计项目化教程(微课版)4.2 结构体进阶.pptx
《61396-Go语言程序设计项目化教程(微课版)4.2 结构体进阶.pptx》由会员分享,可在线阅读,更多相关《61396-Go语言程序设计项目化教程(微课版)4.2 结构体进阶.pptx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构体进阶结构体进阶结构体构造函数为任意类型添加方法01.04.目录结构体方法和接收器02.结构体比较03.JSON序列化05.01结构体构造函数值传递指针传递结构体做函数参数值传递指针传递(地址传递)Go 语言没有构造函数的功能使用结构体初始化的过程来模拟实现构造函数结构体可以像其他数据类型一样将结构体类型作为参数传递给函数Go语言中的构造函数1结构体构造函数结构体构造函数1结构体构造函数结构体构造函数type 类型名 struct 字段名1 字段类型1 字段名2 字段类型2 .func newfunc(变量名1 变量类型,变量名2 变量类型)*类型名 return&类型名 字段名1:变量1
2、,字段名2:变量2,.Go语言中的构造函数语法Go语言的类型或结构体没有构造函数的功能,但是我们可以使用结构体初始化的过程来模拟实现构造函数。构造函数传入的变量类型需要与return返回结构体指针字段名类型一致构造函数可以只返回结构体中某些字段名package mainimport fmttype person struct name string age int/构造函数约定俗成用new开头/返回的是结构体还是结构体指针/当结构体比较大的时候使用结构体指针,减少程序内存的开销。func personOnlyName(name string)*person return&person name
3、:name,/仅返回部分字段func newperson(name string,age int)*person return&person name:name,age:age,/返回所有字段func main()p1:=personOnlyName(Go语言)fmt.Println(p1)p2:=newperson(golang,20)fmt.Println(p2)运行结果:&Go语言 0&golang 201结构体构造函数结构体构造函数package mainimport fmttype person struct name string age intfunc print1(p pers
4、on)p.name=值传递 fmt.Println(print1,p)func print2(p*person)p.name=指针传递 fmt.Println(print2,p)func main()p1:=personGo语言,20 print1(p1)/值传递,形参无法改实参 fmt.Println(p1)print2(&p1)/指针传递,形参可以改实参 fmt.Println(p1)运行结果:print1 值传递 20Go语言 20print2&指针传递 20指针传递 201结构体构造函数结构体构造函数02结构体方法和接收器无参数和返回值值类型接收者针类型接收者2结构体方法和接收器结构体
5、方法和接收器Go语言的函数调用有接收器方法指针方法指针做为接收器值方法值作为接收器无接收器函数2结构体方法和接收器结构体方法和接收器func(结构体变量 结构体类型)方法名()函数体无参数和返回值func(接收者变量 接收者类型)方法名(参数列表)(返回参数)函数体值类型接收者func(接收者变量*接收者类型)方法名(参数列表)(返回参数)函数体指针类型接收者2结构体方法和接收器结构体方法和接收器func main()p:=personGo,20 p.print()p.change1(Golang)p.print()p.change2(Go语言)p.print()package mainimp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 61396-Go语言程序设计项目化教程微课版4.2 结构体进阶 61396 Go 语言程序设计 项目 教程 微课版 4.2 结构 进阶
限制150内