Membatalkan Indeks Peta dalam Go
Dalam program Go, indeks peta tidak boleh dirujuk secara langsung. Isu ini timbul disebabkan sifat dinamik peta, di mana alamat entri mungkin berubah semasa pertumbuhan atau pengecutan peta. Akibatnya, cubaan memanggil kaedah penerima penuding pada entri peta membawa kepada ralat berikut:
cannot call pointer method on f[0] cannot take the address of f[0]
Untuk menyelesaikan isu ini, cuma alih keluar tanda bintang (*) daripada penerima kaedah dalam kaedah bermasalah:
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++ } }
Dengan berbuat demikian, kaedah ini bukan lagi penerima penunjuk, membenarkan ia dipanggil pada entri peta tanpa isu.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Menggunakan Penerima Penunjuk pada Entri Peta dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!