结构体
结构体是一种数据类型, 可以保存多个维度数据的类型, 类似于面向对象中的类
定义结构体
使用 type
和 struct
关键字定义结构体
1 | type 结构体名 struct { |
例如:
1 | // 定义一个结构体 |
结构体实例化
1 | // 方法一 |
使用构造函数初始化
1 | // 结构体的构造函数 |
匿名结构体
多用于临时场景
1 | var user struct{Name string; Age int} |
方法和接收者
方法是有接收者的函数, 接收者指的是哪个类型的变量可以调用这个函数
1 | package main |
结构体是值类型
指针接收者
1 | package main |
结构体嵌套与匿名嵌套
1 | package main |
结构体的继承
1 | package main |
结构体字段的可见性
结构体中字段大写开头表示可公开访问,小写表示私有(仅在定义当前结构体的包中可访问)
json 序列化和反序列化
结构体中的字段首字母要大写!!!
反序列化时要传递指针
1 | package main |
学习资料
我的环境
Mac
go1.19
GoLand