Golang의 데이터베이스/sql 패키지에서 Null[Type] 구조체는 데이터베이스 값과 가능한 값을 처리하는 데 도움이 됩니다. null 값. 그러나 Null 값을 테스트하는 것은 어려울 수 있습니다. .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>
참고:
Null[Type] 구조체는 nil이 아니므로 Value()가 nil이 아닌 값을 반환하는지 확인하려면 Valid 필드를 확인하세요.
{{if $.MyStruct.MyField.Valid}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}
위 내용은 슬라이스 요소와 비교할 때 Golang 템플릿에서 Null 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!