Go语言匿名结构体的2种定义方式(附带实例)
和匿名函数类似,匿名结构体就是没有名字的结构体。
Go语言程序中定义匿名结构体时,不需要使用 type 关键字。匿名结构体主要有两种使用方式:
下面分别进行介绍。
代码如下:
Go语言程序中定义匿名结构体时,不需要使用 type 关键字。匿名结构体主要有两种使用方式:
- 使用 var 关键字定义;
- 使用“:=”定义。
下面分别进行介绍。
var关键字定义匿名结构体
使用这种方式定义匿名结构体,需要先声明表示结构体的变量,再通过该变量为结构体中的成员赋值。代码如下:
package main
import (
"fmt"
)
func main() {
//定义匿名结构体
var actor struct {
name string
work []string
achievement string
}
//为成员赋值
actor.name = "金·凯瑞"
actor.work = []string{"变相怪杰", "楚门的世界", "冒牌天神"}
actor.achievement = "金球奖最佳男主角"
//访问匿名结构体成员
fmt.Printf("中文名:%v\n", actor.name)
fmt.Printf("代表作品:%v\n", actor.work)
fmt.Printf("主要成就:%v\n", actor.achievement)
}
运行结果如下:
中文名:金·凯瑞
代表作品:[变相怪杰 楚门的世界 冒牌天神]
主要成就:金球奖最佳男主角
“:=”定义匿名结构体
将匿名结构体赋值给一个变量,同时为结构体中的成员设置初始值。代码如下:
package main
import (
"fmt"
)
func main() {
//定义匿名结构体,同时为成员赋值
actor := struct {
name string
work []string
achievement string
}{
name: "金·凯瑞",
work: []string{"变相怪杰", "楚门的世界", "冒牌天神"},
achievement: "金球奖最佳男主角",
}
//访问匿名结构体成员
fmt.Printf("中文名:%v\n", actor.name)
fmt.Printf("代表作品:%v\n", actor.work)
fmt.Printf("主要成就:%v\n", actor.achievement)
}
运行结果如下:
中文名:金·凯瑞
代表作品:[变相怪杰 楚门的世界 冒牌天神]
主要成就:金球奖最佳男主角
ICP备案:
公安联网备案: