首页 > 后端开发 > Golang > 正文

为什么我的结构字段在 Go 中意外恢复?

Susan Sarandon
发布: 2024-11-17 07:15:03
原创
139 人浏览过

Why Does My Struct Field Revert Unexpectedly in Go?

结构体字段意外恢复

在 Go 中,结构体是按值传递的,这意味着对函数内结构体所做的更改不会反映在原始结构体中。这在提供的代码中变得很明显,其中结构体字段恢复到其原始值,即使该值似乎在方法内发生了更改。

问题在于结构体​​如何传递给方法。在给定的代码中,TVManager 方法 sendMessage() 正在修改连接器字段的副本,并且该方法内所做的任何更改都不会传播回原始结构。

要解决此问题,该方法应使用指针接收器。通过在接收者前面加上星号 (*) 前缀,该方法将接收指向实际结构实例的指针,并且该方法中所做的任何更改都将应用于原始结构。

同样,在模拟对象,sendCommand() 方法也应该使用指针接收器。

另一个 Go 约定是避免使用“this”或“self”作为接收者姓名。相反,建议使用与方法功能相匹配的简洁且具有描述性的名称。

通过实施这些更改,结构体字段将成功更新,而不会恢复到其原始值。

以上是为什么我的结构字段在 Go 中意外恢复?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板