Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menguji Kesetaraan Peta dalam Go?

Bagaimana untuk Menguji Kesetaraan Peta dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 09:46:021056semak imbas

How to Test Map Equivalence in Go?

Menguji Kesetaraan Peta dalam Go

Dalam ujian dipacu jadual, cabaran menguji kesamaan peta timbul. Menyemak panjang dan pasangan nilai kunci secara manual menjadi membosankan, terutamanya apabila diulang untuk jenis peta yang berbeza.

Penyelesaian Idiomatik

Penyelesaian idiomatik menggunakan pakej pantulan perpustakaan standard Go. Fungsi reflect.DeepEqual mengambil dua argumen{} antara muka dan menyemak kesamaan dengan:

  1. Membandingkannya untuk nilai sifar
  2. Membandingkan panjangnya (untuk struktur data seperti peta)
  3. Menyemak kesamaan unsur konstituennya secara rekursif (pasangan nilai kunci dalam peta)

Contoh

import "reflect"

func TestMapEquality(t *testing.T) {
    m1 := map[string]int{"foo": 1, "bar": 2}
    m2 := map[string]int{"foo": 1, "bar": 2}
    eq := reflect.DeepEqual(m1, m2)
    if !eq {
        t.Errorf("Maps not equal: %v", m1, m2)
    }
}

Nota Tambahan

  • reflect.DeepEqual berfungsi dengan mana-mana jenis peta yang sah, menjadikannya penyelesaian yang serba boleh.
  • Memandangkan ia menerima hujah{} antara muka, adalah penting untuk memastikan nilai yang diluluskan adalah benar-benar peta.
  • Sifat rekursif fungsi memastikan bahawa struktur data bersarang pun dibandingkan dengan teliti untuk kesaksamaan.

Atas ialah kandungan terperinci Bagaimana untuk Menguji Kesetaraan Peta dalam 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