Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membandingkan Slices dengan Betul untuk Kesaksamaan dalam Go?

Bagaimanakah Saya Boleh Membandingkan Slices dengan Betul untuk Kesaksamaan dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-26 03:58:15830semak imbas

How Can I Correctly Compare Slices for Equality in Go?

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:

  • Kedua-dua kepingan adalah sifar atau tidak sifar.
  • Ia mempunyai panjang yang sama.
  • Sama ada bahagian yang sama. tatasusunan asas atau elemen sepadannya adalah sangat sama.

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!

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