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 北京

希望通过嵌入一个结构体来避免多次重复字段名,匿名成员能让你更简洁地访问嵌入结构体的字段。

  • 使用场景:组合关系、简化代码、模拟继承等。
  • 优点:简洁、可组合、模拟继承。
  • 缺点:容易冲突、可读性差、不适用于所有场景。
posted @ 2025-02-23 12:52  fanhongtao  阅读(0)  评论(0)    收藏  举报  来源