有效欄位的Golang 範本測試
問題:
解決方案:
由於模板中 和 的非短路評估,必須採取替代方法。以下是可用於此場景的兩種方法:1.巢狀if 語句:
{{if $.MyStruct.MyField}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}在這個方法中,外部if 語句檢查$ .MyStruct.MyField 是否存在,內部if 語句檢查其Value 是否等於所需值。這確保了僅當欄位不為零時才執行比較。
2. with 操作:
<select name="y"> {{range $idx, $e := .SomeSlice}} <option value="{{.}}" {{with $.MyStruct.MyField}} {{if eq .Value $e}}selected="selected"{{end}} {{end}}>{{.}}</option> {{end}} </select>with 操作將點設為提供的值,從而允許存取其欄位。在本例中,with 操作用於提供對內部作用域內 $.MyStruct.MyField 欄位的訪問,在內部作用域中執行比較。
以上是如何在不短路的情況下測試Golang模板中的有效字段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!