>백엔드 개발 >Golang >구조체 필드 유형을 기반으로 Go HTML 템플릿에 데이터를 표시하는 방법은 무엇입니까?

구조체 필드 유형을 기반으로 Go HTML 템플릿에 데이터를 표시하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-26 18:05:12330검색

How to Display Data in Go HTML Templates Based on Struct Field Type?

Golang HTML 템플릿 내에서 if/elseif/else 전환

문제:

표시 Go 구조체 필드의 유형을 기반으로 하는 템플릿의 데이터입니다. 현재 솔루션에는 여러 개의 {{if}} 문을 중첩하거나 유형을 테스트하기 위한 별도의 함수를 생성하는 것이 포함됩니다.

해결책:

Switch 문:

{{range .Paragraphs}}
    {{switch .Type}}
    {{case paragraph_hypothesis}}:
        -- hypothesis presentation code  --
    {{case paragraph_attachment}}:
        -- attachment presentation code  --
    {{case paragraph_menu}}:
        -- menu --
    {{default}}:
        -- default code --
    {{end}}
{{end}}

if/elseif/else 명령문:

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{elseif .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}
{{end}}

이 예에서 추가 {{else if .IsMenu}}는 문단 첨부를 확인한 후 문단_메뉴 유형을 확인합니다.

함수 사용 :

표현 로직이 복잡한 경우에는 다음을 수행하는 것이 좋습니다. Go 코드에서 별도의 기능을 정의하십시오. 예를 들어 GetHypothesisHTML() 및 GetAttachmentHTML()과 같은 함수를 정의한 다음 템플릿에서 호출할 수 있습니다.

{{range .Paragraphs}}
    {{if .IsHypothesis}}
        {{GetHypothesisHTML .}}
    {{elseif .IsAttachment}}
        {{GetAttachmentHTML .}}
    {{elseif .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}
{{end}}

switch 문, if/elseif/else 문 또는 전용 함수를 활용하여 다음을 수행할 수 있습니다. Go 구조체 필드의 유형을 기반으로 템플릿에 데이터를 깔끔하고 간결하게 표시합니다.

위 내용은 구조체 필드 유형을 기반으로 Go HTML 템플릿에 데이터를 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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