Rumah > pembangunan bahagian belakang > Golang > Bolehkah Fungsi Digunakan sebagai Kunci dalam Peta Go?

Bolehkah Fungsi Digunakan sebagai Kunci dalam Peta Go?

Susan Sarandon
Lepaskan: 2024-11-01 04:10:02
asal
750 orang telah melayarinya

Can Functions Be Used as Keys in Go Maps?

Pemetaan dengan Kekunci Fungsi

Pemetaan data menggunakan fungsi sebagai kunci boleh memberikan kefleksibelan dalam mengakses nilai. Walau bagaimanapun, percubaan untuk mencipta peta dengan fungsi sebagai kunci, seperti yang digambarkan di bawah, menghasilkan ralat:

type Action func(int)
func test(a int) { }
func test2(a int) { }

func main() {
  x := map[Action]bool{}
  x[test] = true
  x[test2] = false
}
Salin selepas log masuk

Ralat: jenis kunci peta tidak sah Tindakan

Sekatan Bahasa

Spesifikasi bahasa Go secara eksplisit menyatakan bahawa fungsi tidak boleh digunakan sebagai kunci peta. Sekatan ini berpunca daripada keperluan bahawa kunci mesti menyokong pengendali seperti perbandingan kesaksamaan, yang tidak mungkin untuk fungsi.

The comparison operators == and != must be fully defined for operands of the key type; thus the key type must not be a function, map, or slice.
Salin selepas log masuk

Oleh itu, penggunaan fungsi sebagai kunci peta tidak dibenarkan oleh bahasa untuk memastikan konsistensi perbandingan utama dan mengelakkan kemungkinan ralat.

Atas ialah kandungan terperinci Bolehkah Fungsi Digunakan sebagai Kunci dalam Peta Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan