>  기사  >  백엔드 개발  >  Go 템플릿의 Nil 개체 및 속성 값을 기반으로 다양한 콘텐츠를 표시하려면 어떻게 해야 합니까?

Go 템플릿의 Nil 개체 및 속성 값을 기반으로 다양한 콘텐츠를 표시하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-21 06:44:09541검색

How Can I Display Different Content Based on a Nil Object and Property Values in Go Templates?

템플릿 조건에서 Nil 값 허용

Go 템플릿으로 작업할 때 객체가 다음과 같은 경우 기본 콘텐츠를 표시하려는 시나리오가 발생할 수 있습니다. nil이지만 특정 속성이 설정된 경우 다른 내용을 표시합니다. 익명 구조체를 사용하는 것이 가능하지만 이로 인해 불필요한 상용구가 도입될 수 있습니다.

다용도 솔루션

이 문제를 우아하게 해결하려면 다음 접근 방식을 고려하세요.

템플릿 코드

{{if not .}}
   // default content
{{else if eq .MetaValue "some-x"}}
   // some-x case
{{else}}
   // other case
{{end}}

설명

이 템플릿 코드는 다음 표현식을 순서대로 평가합니다.

  1. {{ if not .}}: 객체가 nil인지 또는 비어 있는지 확인합니다(false, 0, 빈 배열/슬라이스/맵 또는 빈 문자열). 그렇다면 기본 콘텐츠가 표시됩니다.
  2. {{else if eq .MetaValue "some-x"}}: 개체의 MetaValue 속성이 "some- 엑스". 일치하는 경우 해당 속성과 관련된 콘텐츠가 표시됩니다.
  3. {{else}}: 이전 조건이 모두 충족되지 않으면 나머지 콘텐츠가 표시될 수 있습니다.

eq 대신 not 연산자를 사용합니다. nil인 경우 이 접근 방식은 객체가 nil이거나 비어 있거나 nil 이외의 값을 갖는 상황을 포함하여 가능한 모든 시나리오를 처리합니다. 이렇게 하면 명시적인 nil 검사나 불필요한 익명 구조체의 도입이 필요 없어 템플릿이 깨끗하고 간결하게 유지됩니다.

위 내용은 Go 템플릿의 Nil 개체 및 속성 값을 기반으로 다양한 콘텐츠를 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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