> 백엔드 개발 > Golang > Go 템플릿에 여러 데이터 개체를 어떻게 전달할 수 있나요?

Go 템플릿에 여러 데이터 개체를 어떻게 전달할 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-29 06:35:09
원래의
456명이 탐색했습니다.

How Can I Pass Multiple Data Objects to a Go Template?

Go 템플릿에 여러 데이터 전달

Go에서는 템플릿을 채울 때 단일 값을 전달할 수 있습니다. 구조체, 맵 또는 슬라이스와 같은 복합 값.

여러 데이터 객체를 템플릿:

구조체 사용:

원하는 데이터 객체를 내보낸 필드로 포함하는 구조체 만들기:

type Data struct {
    Results []User // MongoDB query result
    Other   []int  // Integer array
}
로그인 후 복사

구조체를 다음 위치에 전달합니다. 템플릿 실행:

data := &Data{results, []int{1, 2, 3}}
if err := GetTemplate("list").Execute(w, data); err != nil {
    // Handle error
}
로그인 후 복사

템플릿:

{{range .Results}}
    User name: {{.Name}}
{{end}}

{{range .Other}}
    {{.}}
{{end}}
로그인 후 복사
로그인 후 복사

맵 사용:

데이터 개체를 키-값 쌍으로 사용하여 맵 생성:

m := map[string]interface{}{
    "Results": results,
    "Other":   []int{1, 2, 3},
}
로그인 후 복사

통과 템플릿 실행 지도:

if err := GetTemplate("list").Execute(w, m); err != nil {
    // Handle error
}
로그인 후 복사

템플릿:

{{range .Results}}
    User name: {{.Name}}
{{end}}

{{range .Other}}
    {{.}}
{{end}}
로그인 후 복사
로그인 후 복사

슬라이스 사용:

가독성은 떨어지지만 인터페이스 슬라이스를 전달할 수도 있습니다.{}:

s := []interface{}{
    results,
    []int{1, 2, 3},
}
로그인 후 복사

조각을 템플릿 실행에 전달합니다.

if err := GetTemplate("list").Execute(w, s); err != nil {
    // Handle error
}
로그인 후 복사

템플릿:

{{range index . 0}}
    User name: {{.Name}}
{{end}}

Other: {{index . 1}}
로그인 후 복사

참고: 사용자 정의 함수나 채널을 사용하여 여러 데이터 개체를 전달할 수도 있지만 덜 일반적인 방식으로 간주됩니다.

위 내용은 Go 템플릿에 여러 데이터 개체를 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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