您正在按值传递结构。只要您不修改结构,此方法就可以正常工作,但是,如果您修改它,则实际上仅在修改副本。为了使这项工作有效,您需要使用 指向
需要修改的结构的 指针 。
代替:
func (this MockConnector) sendCommand(payload map[string]string)
用:
func (this *MockConnector) sendCommand(payload map[string]string)
另外,在Go中使用
this(或
self)作为接收方名称也是一个坏主意,因为接收方与
this其他语言中的指针/引用不同。
另一种最佳实践是,如果给定类型的一种方法需要指针接收器,则该类型的所有方法都应具有指针接收器。这样,无论值是否是指针,方法集都保持一致。
请参阅方法集和这些
FAQ
答案以获取更多信息。



