Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menentukan sama ada Pembolehubah Go adalah Sifar Tanpa mengira Jenisnya?

Bagaimana untuk Menentukan sama ada Pembolehubah Go adalah Sifar Tanpa mengira Jenisnya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 21:33:11536semak imbas

How to Determine if a Go Variable is Zero Regardless of its Type?

Menentukan Nilai Sifar Pembolehubah Tanpa mengira Jenis dalam Golang

Di Golang, tidak semua pembolehubah boleh dibandingkan, seperti kepingan. Ini memberikan cabaran dalam menentukan sama ada pembolehubah jenis arbitrari adalah sifar. Percubaan untuk menggunakan perbandingan langsung dengan reflect.Zero(reflect.TypeOf(v)).Interface() gagal untuk jenis yang tidak setanding.

Go's Solution: reflect.Value.IsZero()

Go versi 1.13 memperkenalkan kaedah IsZero dalam pakej reflect. Fungsi ini membolehkan anda menyemak nilai sifar walaupun untuk jenis yang tidak setanding.

Penggunaan:

Untuk menentukan sama ada pembolehubah v ialah sifar, tanpa mengira jenisnya, gunakan kod berikut:

if reflect.ValueOf(v).IsZero() {
    // v is zero, perform custom actions
}

Disokong Jenis:

Kaedah IsZero menyokong semakan nilai sifar untuk jenis berikut:

  • Jenis asas
  • Chan, Func, Array, Antara Muka, Peta , Ptr, Slice, UnsafePointer dan Struct

Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Pembolehubah Go adalah Sifar Tanpa mengira Jenisnya?. 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