> 백엔드 개발 > Golang > Go 템플릿에서 동시에 여러 배열을 반복하는 방법은 무엇입니까?

Go 템플릿에서 동시에 여러 배열을 반복하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-18 18:01:17
원래의
806명이 탐색했습니다.

How to Iterate Over Multiple Arrays Simultaneously in Go Templates?

Go 템플릿: 여러 배열을 동시에 반복

프로젝트 작업 중에 여러 배열을 동시에 반복해야 하는 상황이 발생할 수 있습니다. 템플릿을 이용하세요. 이러한 상황은 아래와 같은 데이터 구조가 있고 이러한 배열의 각 요소를 출력에서 ​​함께 그룹화해야 할 때 발생합니다.

type Schedule struct {
    Description   string
    ControlNights int
    PlayNights    int
    StartDay      int
    Combos        []Combo
}

type Combo struct {
    From    time.Time
    Every   int
    Until   time.Time
    Sounds  []string
    Volumes []int
    Waits   []int
}
로그인 후 복사

콤보 반복

각 콤보의 데이터를 개별적으로 표시하려면 Schedule.Combos 배열을 반복하는 범위 루프를 사용할 수 있습니다. 이것은 각 콤보를 통해 반복됩니다. 그러나 이는 필요한 데이터를 표시하기에는 충분하지 않습니다.

배열을 행으로 결합

다른 배열의 데이터를 행으로 그룹화하려면 각 행에 Sounds의 데이터가 포함됩니다. , Volumes 및 Waits 배열을 사용하면 동적 템플릿을 활용할 수 있습니다. 이 기술을 사용하면 템플릿 자체 내의 데이터를 조작하고 수정할 수 있습니다.

그룹화를 위한 동적 템플릿

다음 템플릿을 고려하세요.

{{ range .Schedule.Combos }}
<div class="container">
    <div class="row">
        <div class="col">
            <div class="card mt-2 ml-2">
                <div class="card-body">
                    <h5 class="card-title"><strong>Timing</strong></h5>
                    <h5 class="card-text">Play every {{.Every}} mins</h5>
                    <h5 class="card-text">From time {{TimeOfDayToString .From}}</h5>
                    <h5 class="card-text">Until {{TimeOfDayToString .Until}}</h5>
                </div>
            </div>
        </div>
        <div class="col">
            <div class="card mt-2">
                <div class="card-body">
                    <h5 class="card-title"><strong>Sounds</strong></h5>
                    {{ range .Sounds }}
                    <h5 class="card-text">Sound {{.}}</h5>
                    {{ end }}
                </div>
            </div>
        </div>
로그인 후 복사

사운드, 볼륨 및 대기를 함께 그룹화하려면 세 가지를 모두 결합하는 새 템플릿 변수를 생성할 수 있습니다.

{{ $mergedArrays := .Sounds, .Volumes, .Waits }}
로그인 후 복사

결합된 배열에 대한 반복

결합된 배열을 사용할 수 있으면 중첩 루프를 사용하여 반복할 수 있습니다.

{{ range $index, $mergedArray := $mergedArrays }}
    {{ $sound := $mergedArray[0] }}
    {{ $volume := $mergedArray[1] }}
    {{ $wait := $mergedArray[2] }}
    <li>{{ $sound }} - {{ $volume }} - {{ $wait }}</li>
{{ end }}
로그인 후 복사

이 중첩 루프에서는 결합된 배열의 개별 요소에 액세스하고 이를 표시합니다.

이 접근 방식을 사용하면 사운드, 볼륨 및 대기 배열의 데이터를 원하는 행으로 그룹화할 수 있습니다.

위 내용은 Go 템플릿에서 동시에 여러 배열을 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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