Kepingan Tiada, Kosong dan Tidak Nihil dalam Go
Sebagai pemula dalam pengaturcaraan Go, adalah penting untuk memahami nuansa kepingan , termasuk kepingan nol, bukan nol dan kosong. Dalam artikel ini, kami akan menyelidiki perbezaan mereka dan memberikan cerapan tentang mengesan sama ada hirisan kosong.
Gelagat Boleh Diperhatikan
Walaupun kepingan kosong dan kosong (dengan kapasiti sifar ) berkongsi tingkah laku yang boleh diperhatikan yang serupa, mereka adalah berbeza. Kedua-dua jenis boleh dihantar ke fungsi len() dan cap() dan dilalui dengan untuk gelung julat (dengan lelaran sifar). Selain itu, ia boleh dihiris tanpa melanggar sekatan ungkapan hirisan.
Di Bawah Hud
Secara dalaman, nilai hirisan diwakili oleh reflect.SliceHeader struct yang mengandungi medan untuk data , panjang dan kapasiti.
Ujian untuk Kekosongan
Untuk menentukan sama ada sekeping kosong, cuma bandingkan panjangnya dengan 0: len(s) == 0. Syarat ini berlaku untuk kedua-dua kepingan nol dan bukan nol dengan kapasiti sifar.
Nota Tambahan
Walaupun kepingan kosong dan kosong berkelakuan serupa dalam kebanyakan kes, sesetengah pakej seperti pengekodan/json dan fmt mungkin merawatnya secara berbeza. Oleh itu, adalah disyorkan untuk membezakan kepingan kosong dan kosong apabila berinteraksi dengan pakej tersebut.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Potongan Tiada, Kosong dan Bukan Tiada dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!