Go 匿名结构体的使用场景

发布时间:2023-03-17浏览次数:0

支持注册ChatGPT Plus的OneKey虚拟卡
绑定Apple Pay、Google Pay、支付宝和微信支付进行日常消费

注册和了解更多 ->

silver

匿名结构体通常用于以下场景:

  1. 声明临时变量

当需要声明一个临时变量,且不需要在程序中重用该变量时,可以使用匿名结构体。

例如,如果需要将两个字符串连接起来,并将结果打印出来,可以使用匿名结构体来声明一个包含两个字符串的临时变量。

fmt.Printf("%s\n", struct{string; string}{"Hello", "World"})
  1. 嵌入其他结构体

当一个结构体需要嵌入到另一个结构体中时,可以使用匿名结构体实现。

例如,如果需要在一个结构体中嵌入一个包含姓名和年龄的结构体,可以使用匿名结构体来实现。

type Person struct {
   name string
   age int
   contact struct {
      phone string
      email string
   }
}

这样,就可以通过 Person.contact.phonePerson.contact.email 来访问内嵌结构体的字段。

  1. 函数形参

当一个函数需要接收一个结构体作为参数时,如果该结构体仅在该函数中使用,可以使用匿名结构体来声明函数形参。

例如:

func printNameAndAge(p struct{name string; age int}) {
   fmt.Printf("%s is %d years old\n", p.name, p.age)
}

这样就可以在调用 printNameAndAge 函数时,传递一个匿名结构体作为参数,而无需提前定义结构体类型。

字节笔记本扫描二维码查看更多内容