Menguji Kesetaraan Peta di Golang
Apabila menulis ujian dipacu jadual yang melibatkan peta, menentukan kesetaraan mereka boleh menjadi mencabar. Satu pendekatan ialah menyemak kesamaan panjang dan pasangan nilai kunci individu secara manual, tetapi ini menjadi berulang untuk jenis peta yang berbeza.
Pendekatan Idiomatik
Tawaran perpustakaan Go penyelesaian terbina dalam: reflect.DeepEqual. Fungsi ini mengambil dua argumen{} antara muka dan membandingkan nilainya secara rekursif. Untuk peta, ia membandingkan panjang, kunci dan nilai menggunakan langkah berikut:
Contoh Penggunaan
Untuk membandingkan dua peta, m1 dan m2, gunakan kod berikut:
import "reflect" eq := reflect.DeepEqual(m1, m2) if eq { fmt.Println("They're equal.") } else { fmt.Println("They're unequal.") }
Penyelesaian ini mengelakkan keperluan untuk logik perbandingan tersuai dan berfungsi dengan pelbagai jenis peta. Walau bagaimanapun, ambil perhatian bahawa ia juga akan membandingkan nilai bukan peta jika dihantar secara salah.
Atas ialah kandungan terperinci Bagaimana untuk Menguji Kesetaraan Peta di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!