/*
go结构体
go语言结构体数据类型
是将各个类型的变量定义的集合
通常用来表示记录
*/
package main
import (
"fmt"
)
/*
知识点:
type struct{
}
里面的变量之间不需要加逗号
*/
//这个person结构体有name和age成员
type person struct {
name string
age int
}
func main() {
/*
这个语法创建一个新结构体变量
*/
p1 := person{"Bob", 20}
fmt.Println(p1)
/*
也可以使用成员:值的方式来初始化结构体变量
*/
p2 := person{name: "Alice", age: 30}
fmt.Println(p2)
//未显示赋值的成员初始值为零值
p3 := person{name: "Fred"}
//可以使用&来获取结构体变量的地址
fmt.Println(&person{name: "", age: 1})
//使用点号来访问结构体成员
s := person{name: "Sean", age: 50}
fmt.Println(s.name)
//结构体指针也可以使用点号来访问结构体成员
//go语言会自动识别出来
sp := &s
fmt.Println(sp.age)
//结构体成员变量的值是可以改变的
sp.age = 51
fmt.Println(sp.age)
}