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
ICP备案:
公安联网备案: