在 go 中,当通过嵌入(embedding)让子结构体获得父结构体的方法时,需注意方法是否有返回值;若误将无返回值的方法(如 `setname()`)直接传给 `fmt.println()`,会触发编译错误,因其“无值可传递”。
Go 的结构体嵌入(embedding)是一种实现代码复用和“类似继承”行为的重要机制。当你将 Foo 嵌入 Bar 时(type Bar struct { Foo; id string }),Bar 实例(尤其是指针 *Bar)会自动获得 *Foo 类型定义的所有指针接收者方法(如 (*Foo).SetName 和 (*Foo).Name),前提是这些方法的接收者是 *Foo —— 这正是本例中能成功调用 bar.Name() 的原因。
但关键区别在于方法签名:
你遇到的错误:
./struct-2.go:33: bar.Foo.SetName("New value set to Foo struct name") used as value本质上是 Go 编译器在提示:你试图把一条没有返回值的语句当作一个“值”来使用(此处传给了 fmt.Println 的可变参数列表),这在 Go 中是非法的。
✅ 正确写法应将方法调用与打印分离:
bar.SetName("New value set to Foo struct name") // 单独调用,不参与打印
fmt.Println("Bar getName(): ", bar.Name()) // 再读取并打印⚠️ 补充注意事项:
.Foo 的内存;总结:在 Go 中,切勿将无返回值的方法调用直接嵌入到需要值的上下文(如函数参数、赋值右值、if 条件等)。养成“先调用,再使用”的习惯,既符合语言规范,也提升代码可读性与健壮性。
# go
# 区别
# 代码复用
# 编译错误
# 代码可读性
# String
# if
# 结构体
# 可变参数
# void
# 指针
# 继承
# Struct
# Interface
# 实参
# embedding
# 返回值
# 的是
# 是一个
# 是一种
# 尤其是
# 求值
# 适用于
# 不符合
# 这在
# 你将
相关文章:
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
做企业网站制作流程,企业网站制作基本流程有哪些?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何在IIS管理器中快速创建并配置网站?
已有域名和空间,如何快速搭建网站?
如何续费美橙建站之星域名及服务?
如何配置IIS站点权限与局域网访问?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
C#如何使用XPathNavigator高效查询XML
建站ABC备案流程中有哪些关键注意事项?
如何通过.red域名打造高辨识度品牌网站?
如何快速搭建安全的FTP站点?
如何选择建站程序?包含哪些必备功能与类型?
如何获取上海专业网站定制建站电话?
ui设计制作网站有哪些,手机UI设计网址吗?
如何在阿里云通过域名搭建网站?
宝塔面板创建网站无法访问?如何快速排查修复?
寿县云建站:智能SEO优化与多行业模板快速上线指南
建站之星价格显示格式升级,你的预算足够吗?
网站制作员失业,怎样查看自己网站的注册者?
高端网站建设与定制开发一站式解决方案 中企动力
如何自定义建站之星网站的导航菜单样式?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
*服务器网站为何频现安全漏洞?
深圳网站制作培训,深圳哪些招聘网站比较好?
网站制作公司,橙子建站是合法的吗?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
网站制作公司排行榜,抖音怎样做个人官方网站
高性能网站服务器配置指南:安全稳定与高效建站核心方案
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
C++中引用和指针有什么区别?(代码说明)
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何在Windows 2008云服务器安全搭建网站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
学校建站服务器如何选型才能满足性能需求?
专业公司网站制作公司,用什么语言做企业网站比较好?
如何选择高效可靠的多用户建站源码资源?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
建站之星如何保障用户数据免受黑客入侵?
深入理解Android中的xmlns:tools属性
建站之星安装失败:服务器环境不兼容?
安云自助建站系统如何快速提升SEO排名?
建站主机选择指南:服务器配置与SEO优化实战技巧
如何通过IIS搭建网站并配置访问权限?
小程序网站制作需要准备什么资料,如何制作小程序?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
c# 在ASP.NET Core中管理和取消后台任务
*请认真填写需求信息,我们会在24小时内与您取得联系。