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 중국어 웹사이트의 기타 관련 기사를 참조하세요!