Bagaimana untuk Semak sama ada Medan `sql.Null[Type]` Sah dalam Templat Go?

Linda Hamilton
Lepaskan: 2024-10-28 02:36:31
asal
413 orang telah melayarinya

How to Check if a `sql.Null[Type]` Field is Valid in Go Templates?

Menguji Medan Sah dalam Templat Go

Dalam pakej pangkalan data/sql Go, struct Null[Type] membantu dalam memetakan nilai pangkalan data dengan potensi null ke dalam kod. Menentukan sama ada medan struct adalah nol, iaitu, sifat Sahnya adalah palsu, boleh mencabar.

Untuk memaparkan medan SQL, gunakan sifat .Value:

<code class="go">{{ .MyStruct.MyField.Value }}</code>
Salin selepas log masuk

Apabila memerlukan lebih banyak perbandingan yang kompleks, menguji kesahihan bidang menjadi penting. Menggunakan jika dengan .Nilai sahaja mengakibatkan ralat jika .MyField tidak Sah.

Percubaan untuk menguji kewujudan medan yang sah menggunakan dan dan atau fungsi templat juga tidak berjaya. Penilaian tidak ditamatkan awal walaupun hasilnya jelas daripada hujah pertama.

Sebaliknya, pertimbangkan untuk menggunakan blok bersarang jika:

<code class="go">{{if $.MyStruct.MyField}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>
Salin selepas log masuk

Sebagai alternatif, blok dengan boleh digunakan, tetapi ia mengubah suai konteks templat semasa:

<code class="go">{{range .SomeSlice}}
    {{with $.MyStruct.MyField}}
        {{if eq .Value .}}selected="selected"{{end}}
    {{end}}
{{/range}}</code>
Salin selepas log masuk

Perhatikan bahawa jenis sql.NullXX ialah struct bukan nol. Untuk menentukan sama ada kaedah Nilai mereka akan mengembalikan nilai bukan nol, semak medan Sah mereka:

<code class="go">{{if $.MyStruct.MyField.Valid}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Medan `sql.Null[Type]` Sah dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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!