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!