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!