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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 04:45:02574검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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