Go语言匿名结构体的用法
在 Go 语言中,匿名结构体和匿名函数是同一个概念,使用匿名结构体必须赋值给变量,否则没法使用。
匿名结构体的使用方法如下:
代码运行结果为:
结构体实例化之后,由实例化变量访问匿名成员的数据类型即可操作,实现匿名成员的取值或赋值,上述代码运行结果为:
匿名结构体的使用方法如下:
package main import "fmt" func main() { // 定义匿名结构体 var p struct { name string age int } // 使用匿名结构体并为成员赋值 p.name = "Tom" p.age = 10 fmt.Printf("匿名结构体的成员name:%v\n", p.name) fmt.Printf("匿名结构体的成员age:%v\n", p.age) // 定义匿名结构体并赋值 p1 := struct { name string age int }{ name: "Tim", age: 20, } fmt.Printf("匿名结构体的成员name:%v\n", p1.name) fmt.Printf("匿名结构体的成员age:%v\n", p1.age) }上述示例列举了匿名结构体的两种使用方式,第一种使用关键字 var 定义,第二种使用 := 定义,并为匿名结构体成员设置初始值,每个成员值以键值对格式表示,每对键值对的末端必须使用逗号隔开。
代码运行结果为:
匿名结构体的成员name:Tom
匿名结构体的成员age:10
匿名结构体的成员name:Tim
匿名结构体的成员age:20
结构体匿名成员
匿名成员是指在结构体中没有明确定义成员名称,只定义了成员的数据类型,结构体在实例化的时候可以通过成员的数据类型进行访问,示例如下:package main import "fmt" type person struct { // 定义结构体 string int float64 bool } func main() { // 实例化结构体 p := person{"Tim", 20, 171.1, true} // 访问匿名成员并输出 fmt.Printf("结构体的匿名成员string的值:%v\n", p.string) fmt.Printf("结构体的匿名成员int的值:%v\n", p.int) fmt.Printf("结构体的匿名成员float64的值:%v\n", p.float64) fmt.Printf("结构体的匿名成员bool的值:%v\n", p.bool) }结构体匿名成员的数据类型只能为字符串、整型、浮点型、复数或布尔型等基本数据类型,不能为数组、切片、集合或结构体等复合类型,否则程序会提示语法错误。
结构体实例化之后,由实例化变量访问匿名成员的数据类型即可操作,实现匿名成员的取值或赋值,上述代码运行结果为:
结构体的匿名成员string的值:Tim
结构体的匿名成员int的值:20
结构体的匿名成员float64的值:171.1
结构体的匿名成员bool的值:true