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
Lepaskan: 2024-12-26 03:58:15
asal
775 orang telah melayarinya

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan