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方法
相关推荐
IT_102440 分钟前
Spring Boot项目开发实战销售管理系统——系统设计!
大数据·spring boot·后端
ai小鬼头2 小时前
AIStarter最新版怎么卸载AI项目?一键删除操作指南(附路径设置技巧)
前端·后端·github
Touper.2 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
黄雪超2 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice2 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变2 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
一只叫煤球的猫2 小时前
普通程序员,从开发到管理岗,为什么我越升职越痛苦?
前端·后端·全栈
一只鹿鹿鹿2 小时前
信息化项目验收,软件工程评审和检查表单
大数据·人工智能·后端·智慧城市·软件工程
lijingguang2 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
专注VB编程开发20年3 小时前
开机自动后台运行,在Windows服务中托管ASP.NET Core
windows·后端·asp.net