Go 템플릿으로 HTML 코드 반복
Go를 사용한 웹 개발에서는 지정된 HTML 줄을 반복해야 하는 경우가 있습니다. 횟수. Go 템플릿을 사용하여 이를 달성하는 방법을 살펴보겠습니다.
{{range}} 작업 사용
Go 템플릿 내에서 HTML의 일부를 반복하려면 다음을 활용할 수 있습니다. {{범위}} 작업. 그러나 이 작업에는 슬라이스, 배열 또는 맵과 같은 반복 가능한 객체가 필요합니다.
0 값 슬라이스 전달
실제 데이터 구조를 생성하는 대신 , 기본적으로 할당된 메모리가 없는 값이 0인 슬라이스를 전달할 수 있습니다. 이 조각은 반복할 {{range}} 작업에 대한 자리 표시자 역할을 합니다. 예:
const templ = `<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`
tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) }
출력:
<ul> <li><a href="/?page=0">0</a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> </ul>
채워진 슬라이스 사용
인덱스를 시작해야 하는 경우 0이 아닌 값인 경우 슬라이스를 원하는 값으로 채운 다음 반복하는 것을 고려해 보세요.
tmpl := template.Must(template.New("").Parse(templ)) n := 5 values := make([]int, n) for i := range values { values[i] = (i + 1) * 2 } if err := tmpl.Execute(os.Stdout, values); err != nil { panic(err) }
출력:
<ul> <li><a href="/?page=2">2</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=6">6</a></li> <li><a href="/?page=8">8</a></li> <li><a href="/?page=10">10</a></li> </ul>
0 값 슬라이스 및 사용자 정의 함수 사용
대체 접근 방식은 주어진 숫자를 증가시키고 결과를 반환하는 사용자 정의 함수입니다. 이를 통해 값이 0인 슬라이스를 사용하고 템플릿 내에서 함수를 호출하여 원하는 숫자를 얻을 수 있습니다.
func main() { tmpl := template.Must(template.New("").Funcs(template.FuncMap{ "Add": func(i int) int { return i + 1 }, }).Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) } } const templ = `<ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`
출력:
<ul> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=5">5</a></li> </ul>
위 내용은 Go 템플릿을 사용하여 HTML 코드를 지정된 횟수만큼 반복하려면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!