Kesamaan Penunjuk Fungsi dalam Go
Dalam Go, membandingkan penunjuk fungsi untuk kesamaan menggunakan operator == atau != tidak dibenarkan untuk fungsi yang tidak nihil. Tingkah laku ini menghalang percampuran kesamaan dan perbandingan identiti.
Kesamaan fungsi berbeza daripada identiti fungsi. Perbandingan identiti harus digunakan untuk menentukan sama ada dua fungsi adalah fungsi yang sama, manakala perbandingan kesamaan harus digunakan untuk menentukan sama ada dua fungsi adalah setara.
Menggunakan pakej reflect untuk membandingkan identiti fungsi, seperti yang ditunjukkan dalam contoh Atom , dianggap tingkah laku yang tidak ditentukan. Pengkompil mungkin mengoptimumkan fungsi dengan menggabungkan pelaksanaannya, menjadikan perbandingan tidak boleh dipercayai.
Untuk membandingkan penunjuk fungsi untuk identiti dengan betul, anda boleh mencipta pembolehubah unik untuk setiap fungsi dan kemudian membandingkan alamat pembolehubah tersebut. Pendekatan ini memastikan anda membandingkan penunjuk fungsi untuk fungsi yang sama, tanpa mengira pengoptimuman.
Berikut ialah contoh cara membandingkan penunjuk fungsi untuk identiti:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Penunjuk Fungsi dengan Selamat untuk Identiti dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!