golang内嵌结构使用示例(结构中包含结构)

1.定义结构

Go 复制代码
// 定义基础结构
type base struct {
	num int //结构成员
}

2.实现结构成员num字段的get与set方法

Go 复制代码
func (b *base) Num() int {
	return b.num
}

func (b *base) SetNum(num int) {
	b.num = num
}

3.在新结构中嵌入结构

Go 复制代码
// 在新结构中嵌入结构
type container struct {
	base        //嵌入的结构
	str  string //新结构字段
}

4.base结构实现方法descirbe

Go 复制代码
// describe:base结构实现方法descirbe
func (b base) describe() string {
	return fmt.Sprintf("base with num=%v", b.num)
}

5.使用结构base与container

Go 复制代码
//使用结构base与container
	cb := container{ //初始化结构container
		base: base{ //初始化结构base
			num: 888, //base结构成员num
		},
		str: "Hello Container", //container结构成员str
	}
	fmt.Println("结构Container:", cb)
	fmt.Printf("结构Container对象cb={container->base->num: %v, container->str: %v}\n", cb.num, cb.str)
	fmt.Println("结构container内嵌结构base的num成员:", cb.base.num)
	fmt.Println("结构base的成员方法describe:container->base->describe()", cb.describe())

6.通过接口调用结构实现方法

Go 复制代码
//临时定义接口
	type describer interface {
		describe() string //跳到base结构的describe方法
	}
	fmt.Println("--->describe:", cb.describe()) //调用内嵌结构的describe方法
	cb.SetNum(999)
	var d describer = cb                        //调用base结构的SetNum
	fmt.Println("===>describer:", d.describe()) //调用接口describer,接口再转到base结构对接口的实现describe方法
相关推荐
凯子坚持 c2 分钟前
Qt常用控件指南(8)
开发语言·数据库·qt
昊坤说不出的梦2 分钟前
【实战】监控上下文切换及其优化方案
java·后端
冠希陈、6 分钟前
PHP 判断是否是移动端,更新鸿蒙系统
android·开发语言·php
疯狂踩坑人12 分钟前
【Python版 2026 从零学Langchain 1.x】(二)结构化输出和工具调用
后端·python·langchain
HDO清风27 分钟前
CASIA-HWDB2.x 数据集DGRL文件解析(python)
开发语言·人工智能·pytorch·python·目标检测·计算机视觉·restful
2201_7569890927 分钟前
C++中的事件驱动编程
开发语言·c++·算法
多米Domi01138 分钟前
0x3f 第48天 面向实习的八股背诵第五天 + 堆一题 背了JUC的题,java.util.Concurrency
开发语言·数据结构·python·算法·leetcode·面试
2301_8223776539 分钟前
模板元编程调试方法
开发语言·c++·算法
csbysj202042 分钟前
Python 循环嵌套
开发语言
测试_AI_一辰1 小时前
Agent & RAG 测试工程05:把 RAG 的检索过程跑清楚:chunk 是什么、怎么来的、怎么被命中的
开发语言·人工智能·功能测试·自动化·ai编程