在 Go 中取消引用地圖索引
在 Go 程式中,無法直接引用地圖索引。此問題的出現是由於映射的動態特性,其中條目的位址可能會在映射增長或收縮期間發生變化。因此,嘗試在映射項目上呼叫指標接收器方法會導致以下錯誤:
cannot call pointer method on f[0] cannot take the address of f[0]
要解決此問題,只需從有問題的方法中的方法接收器中刪除星號(*) :
func (c Cashier) Buy(itemNum int){ item, pass := c.items[itemNum] if pass{ if item.amount == 1{ delete(c.items, itemNum) } else{ item.amount-- c.items[itemNum] = item } c.cash++ } }
藉由這樣做,該方法不再是指標接收器,允許在映射條目上呼叫它而不會出現問題。
以上是為什麼我不能在 Go 中的映射條目上使用指標接收器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!