go语法:结构体嵌套
参考:
https://zhuanlan.zhihu.com/p/300992397(知乎go结构体)
https://studygolang.com/articles/11313 (go中文网)
匿名结构体和非匿名结构体
上代码:
package main import "fmt" type info struct { addr string name string } type info2 struct { addr string name string } type user struct{ id int32 info //匿名:未指定字段名 iii info2 //非匿名:指定字段名为iii } func (pInfo *info) printInfo() { fmt.Println(pInfo) } func (pInfo *info2) printInfo2() { fmt.Println(pInfo) } func (pUser * user) printUser(){ fmt.Println(pUser) } func main(){ u := user{ id: 1, info:info{ addr: "aaa", name:"babb", }, } u.printInfo()//假如是匿名字段,go会进行方法提升,可以直接.出来 u.printUser() u.iii.printInfo2()//假如指定了字段的命名,那调用相关函数就需要指定字段名才能调用了 return }
匿名结构体与父级结构体字段同名
上代码
type Info struct { sex int name string age int address string } type User struct{ like string sex int Info } user:=User{} user.sex=1//这里修改的外部结构User里面的sex字段值 user.Info.sex=2//这里修改的是嵌入结构Info的sex字段值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?