修改后恢复结构体字段
在 Go 中,修改方法内的结构体字段可能不会保留方法外部的更改。当结构按值传递时会发生这种情况,导致仅修改结构的副本。
要解决此问题,应在结构名称之前使用星号 (*) 运算符通过指针传递结构接收者类型声明。这确保了在方法内修改原始结构而不是副本。
例如,在提供的代码中:
func (this MockConnector) sendCommand(payload map[string]string) {
应修改为:
func (this *MockConnector) sendCommand(payload map[string]string) {
此外,Go 中使用除 this 或 self 之外的接收者名称被认为是一种约定。
通过遵循这些准则,可以在方法中有效地修改结构体字段,并且它们的更改将被保留一旦该方法完成。
以上是如何确保结构体字段修改在 Go 方法中持续存在?的详细内容。更多信息请关注PHP中文网其他相关文章!