在Golang 的database/sql 套件中,Null[Type] 結構可幫助處理資料庫值及其可能的值空值。然而,測試空值可能具有挑戰性。使用 .Value 列印 SQL 欄位很簡單,但在更複雜的場景中對值進行評估可能會導致問題。
考慮以下模板代碼:
<select name="y"> {{ range .SomeSlice }} <option value="{{ . }}" {{ if eq $.MyStruct.MyField.Value .}}selected="selected"{{ end }}></option> {{ end }} </select>
此程式碼嘗試根據$.MyStruct.MyField.Value 和.. 的相等性來設定選定的屬性。但是,如果 .MyField 無效,則會發生錯誤。
此問題有兩種解。
使用巢狀if 語句
{{if $.MyStruct.MyField}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}
使用with 指令
<select name="y"> {{range $idx, $e := .SomeSlice}} <option value="{{.}}">{{with $.MyStruct.MyField}} {{if eq .Value $e}}selected="selected"{{end}} {{end}}</option> {{end}} </select>
🎜>
{{if $.MyStruct.MyField.Valid}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}Null[Type] 結構體是非零的,因此請檢查Valid 欄位以確定Value() 是否將傳回非零值。
以上是與切片元素比較時如何處理 Golang 範本中的空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!