4.2 Go结构体(匿名、嵌套)
一、匿名结构体
在Go语言中,匿名结构体和匿名成员(字段)提供了非常灵活的方式来处理数据。
1、匿名函数应用场景
快速使用一个类型,构造一个实例,只调用一回,没有名称只能调用一次。
2、定义匿名结构体
package main
import "fmt"
func main() {
server := struct {
id int
sn string
ip string
}{id: 1024, sn: "E9527", ip: "192.168.101.100"}
//fmt.Println(server)
fmt.Println(server.id, server.sn, server.ip)
}
- 使用场景:临时数据存储、快速开发原型、函数返回类型等。
- 优点:简洁、灵活。
- 缺点:不可复用、可读性差、扩展困难。
二、匿名成员(字段)
匿名成员是结构体字段没有名字的成员,它们是通过嵌入其他结构体或类型来实现的。
package main
import "fmt"
type Address struct {
City string
}
type Person struct {
Name string
Age int
Address // 匿名成员,类型嵌入
}
func main() {
person := Person{
Name: "ops-9527",
Age: 22,
Address: Address{
City: "北京",
},
}
fmt.Println(person)
fmt.Println(person.Name, person.Age, person.City)
}
打印结果
ops-9527 22 北京
希望通过嵌入一个结构体来避免多次重复字段名,匿名成员能让你更简洁地访问嵌入结构体的字段。
- 使用场景:组合关系、简化代码、模拟继承等。
- 优点:简洁、可组合、模拟继承。
- 缺点:容易冲突、可读性差、不适用于所有场景。

浙公网安备 33010602011771号