Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Semak sama ada Medan `sql.Null[Type]` Sah dalam Templat Go?

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

Linda Hamilton
Linda Hamiltonasal
2024-10-28 02:36:31498semak imbas

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>

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>

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>

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>

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!

Kenyataan:
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