golang:结构体初始化

墨蓝 2022-02-24 17:00 387阅读 0赞

使用“键值对”初始化结构体

  1. type People struct {
  2. name string
  3. child *People
  4. }
  5. relation := &People{
  6. name: "爷爷",
  7. child: &People{
  8. name: "爸爸",
  9. child: &People{
  10. name: "我",
  11. },
  12. },
  13. }

使用多个值的列表初始化结构体

  1. type Address struct {
  2. Province string
  3. City string
  4. ZipCode int
  5. PhoneNumber string
  6. }
  7. addr := Address{
  8. "四川",
  9. "成都",
  10. 610000,
  11. "0",
  12. }
  13. fmt.Println(addr)

初始化匿名结构体

匿名结构体没有类型名称,无须通过 type 关键字定义就可以直接使用。

格式如下:

  1. ins := struct {
  2. // 匿名结构体字段定义
  3. 字段1 字段类型1
  4. 字段2 字段类型2
  5. }{
  6. // 字段值初始化
  7. 初始化字段1: 字段1的值,
  8. 初始化字段2: 字段2的值,
  9. }

看个例子:

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. // 打印消息类型, 传入匿名结构体
  6. func printMsgType(msg *struct {
  7. id int
  8. data string
  9. }) {
  10. // 使用动词%T打印msg的类型
  11. fmt.Printf("%T\n", msg)
  12. }
  13. func main() {
  14. // 实例化一个匿名结构体
  15. msg := &struct {
  16. // 定义部分
  17. id int
  18. data string
  19. }{
  20. // 值初始化部分
  21. 1024,
  22. "hello",
  23. }
  24. printMsgType(msg)
  25. }

匿名结构体的类型名是结构体包含字段成员的详细描述,匿名结构体在使用时需要重新定义,造成大量重复的代码,因此开发中较少使用

发表评论

表情:
评论列表 (有 0 条评论,387人围观)

还没有评论,来说两句吧...

相关阅读

    相关 golang结构定义

    结构体 Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。 Go...

    相关 c结构初始化

    struct结构体是C语言中非常重要的复合类型,初始化的方法很多,下面对这些方法进行总结,便于以后查阅。 一、gcc扩展方式(不知道该如何命名)        \[c

    相关 golang 结构简介

    Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。试图表示一个现实世界中的实体。 结构体由一系列命名的元素组成,这些元素又被称为字