Bagaimana Membezakan Antara Nilai Tidak Tetap dan Kosong dalam Go Structs?

Susan Sarandon
Lepaskan: 2024-10-24 12:58:02
asal
706 orang telah melayarinya

How to Distinguish Between Unset and Empty Values in Go Structs?

Membezakan Antara Nilai Tidak Tetap dan Kosong dalam Go Structs

Dalam Go, semasa mentakrifkan struct, anda mungkin menghadapi keperluan untuk membezakan antara nilai yang sengaja tidak ditetapkan dan nilai yang kosong. Ini boleh menjadi kritikal untuk kegigihan pangkalan data dan memastikan pengendalian data yang tepat.

Pertimbangkan contoh berikut:

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

Katakanlah anda ingin menentukan sama ada medan Kategori tidak pernah ditetapkan atau sengaja ditetapkan sebagai rentetan kosong. Menggunakan penunjuk untuk medan (cth., *rentetan) tidak akan menyelesaikan masalah ini, kerana nilai sifar untuk penunjuk adalah sifar, yang tidak dapat membezakan antara nilai yang tidak ditetapkan dan kosong.

Untuk menangani perkara ini, anda boleh menggunakan jenis tersuai seperti sql.NullString daripada pakej pangkalan data/sql. Ia menjejaki keadaan NULL dan membolehkan anda membezakan antara senario berikut:

  • tidak ditetapkan: NullString{String: "", Sah: false}
  • rentetan kosong: NullString{String: "", Sah: true}
  • rentetan bukan kosong: NullString{String: "value", Sah: true}

Semasa pengimbasan pangkalan data dan pengikatan parameter, jenis sql.NullString mengendalikan keadaan NULL secara automatik.

Contohnya, untuk mengimbas ke dalam medan NullString:

<code class="go">err := db.QueryRow("SELECT category FROM organisations WHERE id = ?", id).Scan(&org.Category)</code>
Salin selepas log masuk

Untuk mengikat nilai NullString pada parameter pangkalan data:

<code class="go">_, err := db.Exec("INSERT INTO organisations (category) VALUES (?)", org.Category)</code>
Salin selepas log masuk

Pendekatan ini membolehkan anda membezakan antara nilai yang tidak ditetapkan dan kosong serta memastikan kegigihan pangkalan data yang tepat.

Atas ialah kandungan terperinci Bagaimana Membezakan Antara Nilai Tidak Tetap dan Kosong dalam Go Structs?. 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!