Mengesahkan Kesamaan Slices
Apabila membandingkan dua kepingan untuk kesamaan, operator standard == dan != tidak boleh digunakan secara langsung kerana ia hanya berfungsi untuk nilai nol. Untuk menangani perkara ini, fungsi reflect.DeepEqual() boleh digunakan.
Kesamaan Dalam Slices
DeepEqual() melakukan perbandingan rekursif nilai, memastikan semua unsur-unsur dalam kepingan diperiksa. Untuk hirisan, ia mengambil kira kriteria berikut:
Kod Contoh
Coretan kod berikut menunjukkan cara menggunakan DeepEqual() untuk membandingkan kepingan:
package main import ( "fmt" "reflect" ) func main() { s1 := []int{1, 2} s2 := []int{1, 2} fmt.Println(reflect.DeepEqual(s1, s2)) // Output: true (slices are equal) }
Perbezaan daripada == Operator
Berbeza dengan operator ==, DeepEqual() mempertimbangkan struktur dalaman kepingan, termasuk tatasusunan asasnya. Oleh itu, ia memberikan perbandingan yang lebih komprehensif untuk objek seperti hirisan, di mana dua kejadian dengan elemen yang sama mungkin tidak sama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Slices dengan Betul untuk Kesaksamaan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!