Go 结构体

Go语言结构体数据类是将各个类型的变量定义的集合,通常用来表示记录。

  1. package main
  2. import "fmt"
  3. // 这个person结构体有name和age成员
  4. type person struct {
  5. name string
  6. age int
  7. }
  8. func main() {
  9. // 这个语法创建一个新结构体变量
  10. fmt.Println(person{"Bob", 20})
  11. // 可以使用"成员:值"的方式来初始化结构体变量
  12. fmt.Println(person{name: "Alice", age: 30})
  13. // 未显式赋值的成员初始值为零值
  14. fmt.Println(person{name: "Fred"})
  15. // 可以使用&来获取结构体变量的地址
  16. fmt.Println(&person{name: "Ann", age: 40})
  17. // 使用点号(.)来访问结构体成员
  18. s := person{name: "Sean", age: 50}
  19. fmt.Println(s.name)
  20. // 结构体指针也可以使用点号(.)来访问结构体成员
  21. // Go语言会自动识别出来
  22. sp := &s
  23. fmt.Println(sp.age)
  24. // 结构体成员变量的值是可以改变的
  25. sp.age = 51
  26. fmt.Println(sp.age)
  27. }

输出结果为

  1. {Bob 20}
  2. {Alice 30}
  3. {Fred 0}
  4. &{Ann 40}
  5. Sean
  6. 50
  7. 51