> 백엔드 개발 > Golang > Null 유형이 있는 Go 템플릿에서 유효한 필드를 확인하는 방법은 무엇입니까?

Null 유형이 있는 Go 템플릿에서 유효한 필드를 확인하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-27 04:45:02
원래의
660명이 탐색했습니다.

How to Check for Valid Fields in Go Templates with Null Types?

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

Go의 데이터베이스/sql 패키지에서 Null 유형은 Null 허용 데이터베이스 값을 나타내는 메커니즘을 제공합니다. 템플릿 표현식에서는 구조체 내의 필드가 null(Valid는 false)인지 확인하는 것이 어려울 수 있습니다.

SQL 필드의 값을 인쇄하려면 .Value 속성이 일반적으로 사용됩니다. 그러나 필드 값을 다른 값과 비교할 때 필드가 null이면 문제가 발생할 수 있습니다. nil에 대한 직접 테스트(예: $.MyStruct.MyField == nil인 경우)는 필드가 nil이 아니라 비어 있는 Null 구조체이므로 작동하지 않습니다.

Go 템플릿의 and 함수는 모든 인수를 평가합니다. 결과가 이미 결정된 경우. 따라서 {{ if and ($.MyStruct.MyField) (eq $.MyStruct.MyField.Value .) }}를 사용하면 $.MyStruct.MyField가 null인 경우 오류가 발생합니다.

대신 중첩을 사용하세요. 표현식을 선택적으로 평가하는 {{ if }} 문:

{{ if $.MyStruct.MyField }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}
로그인 후 복사

또는 {{ with }} 문을 사용하지만 점을 설정하므로 신중한 고려가 필요합니다.

{{ with $.MyStruct.MyField }}
    {{ if eq .Value $e }}selected="selected"{{ end }}
{{ end }}
로그인 후 복사

위의 예에서는 null을 허용하지 않는 값을 가정합니다. Null 유형의 경우 유효한 필드를 직접 확인하세요.

{{ if $.MyStruct.MyField.Valid }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}
로그인 후 복사

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿