Bagaimana Membezakan Dengan Betul Antara Nilai Tidak Ditetapkan berbanding Nilai Kosong dalam Go?

Barbara Streisand
Lepaskan: 2024-10-25 05:26:02
asal
428 orang telah melayarinya

How to Distinguish Properly Between Not Set vs. Empty Values in Go?

Membezakan dengan Betul Antara Nilai Tidak Ditetapkan berbanding Nilai Kosong

Apabila bekerja dengan struct dalam Go, adalah penting untuk membezakan antara nilai yang tidak pernah ditetapkan dan nilai yang hanyalah kosong, seperti rentetan kosong.

Pertimbangkan struct berikut:

<code class="go">type Organisation struct {
    Category string
    Code     string
    Name     string
}</code>
Salin selepas log masuk

Untuk membezakan antara kategori yang tidak pernah ditetapkan dan yang kosong, satu pendekatan mungkin menggunakan penunjuk kepada rentetan:

<code class="go">type Organisation struct {
    Category *string
    Code     *string
    Name     *string
}</code>
Salin selepas log masuk

Walau bagaimanapun, nilai sifar untuk rentetan dalam Go ialah rentetan kosong, bermakna tidak mungkin untuk membezakan antara kedua-dua kes itu.

Apabila berurusan dengan pangkalan data, adalah penting untuk memisahkan antara NULL dan rentetan kosong. Untuk tujuan ini, pakej pangkalan data/sql menawarkan jenis sql.NullString:

<code class="go">type NullString struct {
        String string
        Valid  bool // Valid is true if String is not NULL
}</code>
Salin selepas log masuk

Dengan mengimbas ke dalam jenis ini dan menggunakannya sebagai parameter pertanyaan, pakej pangkalan data/sql menguruskan keadaan NULL untuk anda, berkesan membezakan antara nilai yang tidak ditetapkan dan kosong.

Atas ialah kandungan terperinci Bagaimana Membezakan Dengan Betul Antara Nilai Tidak Ditetapkan berbanding Nilai Kosong dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!