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

Bolehkah Fungsi Digunakan sebagai Kunci dalam Peta Go?

Susan Sarandon
Susan Sarandonasal
2024-11-01 04:10:02733semak imbas

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
}

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.

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!

Kenyataan:
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