Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Semak Nilai Sifar Jenis Arbitrari dalam Go?

Bagaimanakah Saya Boleh Semak Nilai Sifar Jenis Arbitrari dalam Go?

Susan Sarandon
Lepaskan: 2024-11-28 06:49:11
asal
623 orang telah melayarinya

How Can I Check for Zero Values of Arbitrary Types in Go?

Menyemak Nilai Sifar Jenis Arbitrari di Golang

Salah satu tugas biasa dalam pengaturcaraan melibatkan menentukan sama ada pembolehubah dimulakan atau mempunyai nilai lalai. Walau bagaimanapun, ini boleh mencabar di Golang kerana kekurangan nilai sifar universal merentas semua jenis.

Cabaran Membanding

Pendekatan konvensional untuk membandingkan pembolehubah kepada nilai Zero() refleksi tidak selalu berfungsi kerana tidak semua jenis adalah setanding. Sebagai contoh, kepingan tidak dapat dibandingkan, menjadikannya mustahil untuk menggunakan kod berikut:

var v ArbitraryType
if v == reflect.Zero(reflect.TypeOf(v)).Interface() {
    // v is zero
}
Salin selepas log masuk

Penyelesaian dengan Nilai.IsZero()

Nasib baik, Go 1.13 diperkenalkan kaedah Value.IsZero() dalam pakej reflect. Kaedah ini menyediakan penyelesaian untuk menyemak sama ada pembolehubah jenis arbitrari adalah sifar. Sintaksnya ialah:

reflect.ValueOf(v).IsZero()
Salin selepas log masuk

Kaedah ini berfungsi bukan sahaja untuk jenis asas tetapi juga untuk:

  • Chan
  • Fungsi
  • Array
  • Antaramuka
  • Peta
  • Ptr
  • Slice
  • UnsafePointer
  • Struct

Penggunaan Contoh

Untuk menentukan sama ada pembolehubah v jenis arbitrari ialah sifar:

if reflect.ValueOf(v).IsZero() {
    // v is zero
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Nilai Sifar Jenis Arbitrari dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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