当前位置: 首页 > news >正文

【go从零单排】结构嵌套struct embedding

挪威特罗姆瑟夜景

🌈Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。

📗概念

在Go语言中,结构体嵌套(struct embedding)是一种强大的特性,它允许在一个结构体中嵌入另一个结构体,从而实现组合和复用。嵌套结构体可以让你创建更加复杂的数据结构,同时保持代码的简洁性和可读性。

💻代码

package mainimport "fmt"// type关键字定义base struct
type base struct {num int
}// 定义函数describe,输入一个base类型,输出一个string
func (b base) describe() string {return fmt.Sprintf("base with num=%v", b.num)
}// container结构嵌套base
type container struct {basestr string
}func main() {//使用字段初始化嵌套结构,指明了base//co是container的实例co := container{base: base{num: 1,},str: "some name",}//使用co.num 、co.str访问字段fmt.Printf("co={num: %v, str: %v}\n", co.num, co.str)//用全名访问字段co.base.numfmt.Println("also num:", co.base.num)//访问describe方法co.describe()fmt.Println("describe:", co.describe())//定义接口describer,内部调用describe方法type describer interface {describe() string}//实现接口,调用co结构,由于base已经被嵌套进来,可以直接实现base中的describe方法var d describer = cofmt.Println("describer:", d.describe())
}//输出go run post.go
//co={num: 1, str: some name}
//also num: 1
//describe: base with num=1
//describer: base with num=1

🔍理解

  • 被嵌套的结构体字段直接可以访问,方法可以直接被调用
  • 代码复用:可以将公共字段和方法定义在一个结构体中,然后在其他结构体中嵌套,避免重复代码。
  • 逻辑分组:将相关的字段组合在一起,使得数据结构更加清晰。
  • 简化访问:嵌套结构体的字段可以直接通过外部结构体访问,无需每次都指定嵌套结构体的名称。

💡 Tips小知识点

💪无人扶我青云志,我自踏雪至山巅。
在这里插入图片描述

http://www.lryc.cn/news/481098.html

相关文章:

  • Django 详细入门介绍
  • 万字长文解读深度学习——循环神经网络RNN、LSTM、GRU、Bi-RNN
  • HDR视频技术之二:光电转换与 HDR 图像显示
  • 【Linux】Linux入门实操——vim、目录结构、远程登录、重启注销
  • Redis的缓存问题与应对策略
  • Java项目实战II基于Spring Boot的智慧生活商城系统的设计与实现(开发文档+数据库+源码)
  • 每日一题之成绩排序
  • QT Widget:使用技巧
  • 深入Zookeeper节点操作:高级功能与最佳实践
  • 【C++】map和set的介绍及使用
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(十)SpringBoot 集成RabbitMQ
  • GNU/Linux - /proc/sys/vm/drop_caches
  • ubuntu 22.04 如何调整进程启动后能打开的文件数限制
  • linux基础-完结(详讲补充)
  • LoRA:大型语言模型(LLMs)的低秩适应;低秩调整、矩阵的低秩与高秩
  • 游戏引擎学习第四天
  • GIT GUI和 GIT bash区别
  • 丹摩征文活动|Faster-Rcnn-训练与测试详细教程
  • 星期-时间范围选择器 滑动选择时间 最小粒度 vue3
  • 一条SQL查询语句的执行流程(MySQL)
  • linux基础——详细篇
  • 大数据学习10之Hive高级
  • MongoDB笔记01-概念与安装
  • ollama + fastGPT + m3e 本地部署指南
  • 【设计模式系列】享元模式(十五)
  • 2024大兴区火锅美食节即将开幕——品味多元火锅,点燃冬季消费热潮
  • 可视化建模与UML《类图实验报告》
  • VS2022项目配置笔记
  • springboot029基于springboot的网上购物商城系统
  • 网站访问在TCP/IP四层模型中的流程