Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Pengendali Kesamaan Berfungsi Apabila Membandingkan Nilai `antara muka{}` dalam Go?

Bagaimanakah Pengendali Kesamaan Berfungsi Apabila Membandingkan Nilai `antara muka{}` dalam Go?

DDD
DDDasal
2024-12-03 13:28:09956semak imbas

How Do Equality Operators Work When Comparing `interface{}` Values in Go?

Membandingkan Nilai Jenis Antara Muka{}

Dalam Go, membandingkan nilai antara muka jenis{} ialah operasi biasa. Walau bagaimanapun, ia boleh menyebabkan kekeliruan apabila membandingkan jenis bukan remeh, seperti struct tersuai.

Menggunakan Operator Kesaksamaan

Untuk membandingkan nilai antara muka{}, operator kesamaan == dan != adalah bekerja. Pengendali ini mengikut peraturan khusus yang ditakrifkan dalam Spesifikasi Bahasa Pengaturcaraan Go:

  • Nilai antara muka dianggap sama jika ia mempunyai jenis dinamik yang sama dan nilai dinamik yang sama, atau jika kedua-duanya mempunyai nilai sifar.
  • Untuk nilai bukan antara muka jenis X dan nilai antara muka jenis T, di mana X melaksanakan T, nilai adalah setanding jika X setanding. Ia adalah sama jika jenis dinamik nilai antara muka sepadan dengan X dan nilai dinamiknya adalah sama dengan nilai bukan antara muka.

Membandingkan Struktur dan Antara Muka

Struktur memainkan peranan penting dalam perbandingan jenis. Mengikut spesifikasi:

  • Nilai struktur adalah setanding jika semua medan bukan kosongnya adalah setanding.
  • Dua nilai struct adalah sama jika medan bukan kosong yang sepadan adalah sama.

Permohonan dalam Amalan

Pertimbangkan hirisan nilai antara muka{} berikut: []antara muka{}{1, "Hello", true}. Untuk mencari nilai tertentu, seperti 1, seseorang boleh melelar melalui kepingan dan membandingkan setiap elemen menggunakan operator kesamarataan:

for i := 0; i < len(slice); i++ {
  if slice[i] == 1 {
    // Value found!
    break
  }
}

Kesimpulan

Membandingkan nilai antara muka{} taipkan Go melibatkan pemahaman peraturan kesaksamaan yang ditakrifkan dalam spesifikasi bahasa. Dengan menggunakan peraturan ini, pembangun boleh mengendalikan perbandingan antara nilai antara muka dengan yakin, termasuk jenis bukan remeh seperti struktur tersuai.

Atas ialah kandungan terperinci Bagaimanakah Pengendali Kesamaan Berfungsi Apabila Membandingkan Nilai `antara muka{}` 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