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

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

Susan Sarandon
풀어 주다: 2024-12-03 07:58:10
원래의
188명이 탐색했습니다.

How to Iterate Over Multiple Arrays of Unequal Lengths Simultaneously in Go Templates?

Go 템플릿을 사용하여 동시에 여러 배열을 반복

소개

Go 템플릿에서는 여러 배열을 동시에 반복해야 하는 경우가 종종 있습니다. 이는 특히 배열의 길이가 다르거나 쉽게 재구성할 수 없는 경우 어려울 수 있습니다. 다음은 이 문제를 극복하고 여러 배열을 효율적으로 반복하는 방법에 대한 포괄적인 가이드입니다.

문제 설명

다음 시나리오를 고려하세요.

Schedule과 Schedule, Schedule에 Combo 구조체의 배열이 포함된 Combo. 각 콤보를 반복하고 해당 사운드, 볼륨 및 대기 데이터를 HTML 페이지에 표시해야 합니다. 그러나 배열에는 다양한 길이가 포함되어 있으며 프로젝트의 다른 곳에서 사용되는 구조체를 수정할 수 없습니다.

해결책

이 문제를 해결하려면 "다중 범위"를 사용할 수 있습니다. 반복 기술을 사용하면 여러 배열을 동시에 반복할 수 있습니다. 방법은 다음과 같습니다.

{{range .Schedule.Combos}}
<div class="container">
    <div class="row">
        <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 class="col">
            <div class="card mt-2">
                <div class="card-body">
                    <h5 class="card-title">
                        <strong>Sounds</strong>
                    </h5>
                    {{ $volumes := .Volumes }}
                    {{ $waits := .Waits }}
                    {{range $index,$sound := .Sounds }}
                        <h5 class="card-text">
                            Sound {{.}}
                            Volume {{index $volumes $index}}
                            Wait {{index $waits $index}}
                        </h5>
                    {{end}}
                </div>
            </div>
        </div>
    </div>
</div>
{{end}}
로그인 후 복사

설명

위 템플릿에서:

  • 외부 범위 루프를 사용하여 Schedule.Combos 배열을 반복합니다.
  • Volumes 및 Waits 배열에 액세스하기 위해 $volumes 및 $waits라는 두 개의 새로운 변수를 생성합니다. .Volumes 및 .Waits 값을 각각 할당합니다.
  • 그런 다음 내부 범위 루프를 사용하여 Sounds 배열을 반복하고 해당 루프 내에서 다음을 사용하여 적절한 인덱스에 있는 Volumes 및 Waits 배열에 액세스합니다. 인덱스 기능.

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

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