Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Anda Menguji Kesetaraan Peta di Golang?
Dalam ujian dipacu jadual, adalah penting untuk menegaskan kesamaan dua peta. Walaupun pelaksanaan tersuai dan penukaran rentetan boleh menyusahkan, Golang menawarkan penyelesaian terbina dalam.
Pakej reflect menyediakan fungsi DeepEqual yang membandingkan nilai secara rekursif, termasuk peta. Ia menyemak:
import "reflect" eq := reflect.DeepEqual(m1, m2)
Perbandingan komprehensif ini memastikan kesaksamaan yang tepat ujian untuk peta daripada sebarang jenis (cth., map[string]bool, map[struct{}]antara muka{}). Ambil perhatian bahawa ia memerlukan jenis antara muka sebagai argumen.
Kod sumber untuk reflect.DeepEqual's Map case mendedahkan:
if p, ok := v1.(reflect.Map); ok && q, ok := v2.(reflect.Map) { if p.Len() != q.Len() { return false } for _, k := range p.Keys() { if !q.Has(k) || !DeepEqual(p.Elem(k).Interface(), q.Elem(k).Interface()) { return false } } return true }
Ia mengesahkan nilai nol, panjang peta , dan pasangan nilai kunci. Dengan menghantar jenis antara muka, ia memastikan keserasian dengan pelbagai pelaksanaan peta.
Menggunakan reflect.DeepEqual untuk menguji kesamaan peta di Golang ialah penyelesaian idiomatik dan cekap. Ia mengendalikan semua kes tepi dan memastikan perbandingan yang tepat untuk sebarang jenis peta. Ini memudahkan ujian dipacu jadual dan meningkatkan kebolehpercayaan kod anda.
Atas ialah kandungan terperinci Bagaimana Anda Menguji Kesetaraan Peta di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!