>백엔드 개발 >Golang >Go 템플릿에서 `sql.Null[Type]` 필드가 유효한지 확인하는 방법은 무엇입니까?

Go 템플릿에서 `sql.Null[Type]` 필드가 유효한지 확인하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-28 02:36:31497검색

How to Check if a `sql.Null[Type]` Field is Valid in Go Templates?

Go 템플릿에서 유효한 필드 테스트

Go의 데이터베이스/sql 패키지에서 Null[Type] 구조체는 잠재적인 null이 있는 데이터베이스 값을 매핑하는 데 도움을 줍니다. 코드로. 구조체 필드가 ​​null인지, 즉 Valid 속성이 false인지 확인하는 것이 어려울 수 있습니다.

SQL 필드를 표시하려면 .Value 속성을 사용하세요.

<code class="go">{{ .MyStruct.MyField.Value }}</code>

더 많은 정보가 필요한 경우 복잡한 비교에서는 필드의 유효성을 테스트하는 것이 중요해집니다. .Value와 함께 if를 단독으로 사용하면 .MyField가 유효하지 않은 경우 오류가 발생합니다.

and 및/또는 템플릿 함수를 사용하여 유효한 필드의 존재를 테스트하려는 시도도 실패합니다. 첫 번째 인수에서 결과가 명확하더라도 평가가 조기에 종료되지 않습니다.

대신 중첩된 if 블록 사용을 고려하세요.

<code class="go">{{if $.MyStruct.MyField}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>

또는 with 블록을 사용할 수도 있지만, 현재 템플릿 컨텍스트를 수정합니다.

<code class="go">{{range .SomeSlice}}
    {{with $.MyStruct.MyField}}
        {{if eq .Value .}}selected="selected"{{end}}
    {{end}}
{{/range}}</code>

sql.NullXX 유형은 nil이 아닌 구조체입니다. Value 메소드가 nil이 아닌 값을 반환하는지 확인하려면 유효한 필드를 확인하세요:

<code class="go">{{if $.MyStruct.MyField.Valid}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>

위 내용은 Go 템플릿에서 `sql.Null[Type]` 필드가 유효한지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.