Go struct
定义结构体类型
type XXX struct{
// 结构体字段 == 属性 == field
}
申明定义结构体
指针式申明
var personP *Person = new(Person)
var personP *Person = &Person{}
引用式申明(引用是一个变量的别称)
var s Person
var s Person = Person()
访问结构体的值
//如果是指针的话需要使用(*XXX)括起来
//如本身就是一个结构本身的话直接通过 . 运算符就可以访问了
// . 运算符的优先级比 * 的高
序列化和反序列化
// 为了方便使用序列化和反序列化,我们在使用struct对的时候,可以在字段的旁边写上一个tag
type Person struct {
name string `json:"name"`
age int8 `json:"age"`
}
结构体定义方法
普通的定义在结构体里面
type Person struct {
name string `json:"name"`
age int8 `json:"age"`
action func(){}
}
定义在结构体外面
type Person struct {
name string `json:"name"`
age int8 `json:"age"`
}
func(p Person) showPerson(){
} // 注意这里的 p Person的位置,既不是返回值的位置,也不是参数的位置,他明确表明了 Person struct 和showPerson 的关系