> 백엔드 개발 > Golang > Golang 템플릿을 사용하여 HTML 라인을 여러 번 반복하는 방법은 무엇입니까?

Golang 템플릿을 사용하여 HTML 라인을 여러 번 반복하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-16 07:14:14
원래의
513명이 탐색했습니다.

How to Repeat HTML Lines Multiple Times Using Golang Templates?

Golang 템플릿에서 HTML 반복

Golang에서는 템플릿의 요소 목록을 반복할 때 {{range }} 행동. 그러나 반복하려면 배열이나 슬라이스가 필요합니다. HTML 줄을 여러 번 반복하려면 빈 조각을 만들고 0 값이나 특정 값으로 채울 수 있습니다.

0 값 조각 사용

우리는 필요한 반복 횟수를 나타내기 위해 빈 슬라이스 make([]struct{}, n)를 만들 수 있습니다. 그런 다음 템플릿에서 {{range}}${} 구문을 사용하여 슬라이스를 반복합니다. 예:

tmpl := template.Must(template.New("").Parse(`
<ul>
{{range $idx, $e := .}}
    <li><a href="/?p={{idx}}">{{$idx}}</a></li>
{{end}}
</ul>`))
n := 5
tmpl.Execute(w, make([]struct{}, n))
로그인 후 복사

채워진 슬라이스 사용

또는 특정 값으로 슬라이스를 채울 수도 있습니다. 이 접근 방식을 사용하면 HTML 코드에서 인덱스($idx) 사용을 건너뛸 수 있습니다. 예:

tmpl := template.Must(template.New("").Parse(`
<ul>
{{range .}}
    <li><a href="/?p={{.}}">{{.}}</a></li>
{{end}}
</ul>`))
values := make([]int, 5)
for i := range values {
    values[i] = i + 1
}
tmpl.Execute(w, values)
로그인 후 복사

값이 0인 슬라이스 및 사용자 정의 함수 사용

또 다른 옵션은 슬라이스 인덱스에 1을 더하고 다음을 반환하는 사용자 정의 함수를 생성하는 것입니다. 결과. 이를 통해 숫자를 1씩 증가시키면서 슬라이스 인덱스를 사용할 수 있습니다. 예:

tmpl := template.Must(template.New("").Funcs(template.FuncMap{
    "Add": func(i int) int { return i + 1 },
}).Parse(`
<ul>
{{range $idx, $e := .}}{{$idx := (Add $idx)}}
    <li><a href="/?p={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>`))
n := 5
tmpl.Execute(w, make([]struct{}, n))
로그인 후 복사

이러한 접근 방식은 특정 요구 사항에 따라 HTML 줄을 여러 번 반복할 수 있는 유연한 방법을 제공합니다.

위 내용은 Golang 템플릿을 사용하여 HTML 라인을 여러 번 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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