Iterowanie po listach i mapach za pomocą range
Generowanie powtarzającego się YAML z kolekcji.
Iterowanie po listach i mapach za pomocą range to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Powtarzanie bez kopiowania i wklejania
Gdy wartość zawiera listę, rzadko chcą Państwo ręcznie wpisywać każdy element. Instrukcja range iteruje po kolekcji i renderuje YAML dla każdego elementu.
Instrukcja range
Pętla rozpoczyna się od {{ range SOMETHING }} i kończy za pomocą {{ end }}. Blok pomiędzy nimi jest renderowany raz dla każdego elementu kolekcji. 🔁
{{ range .Values.hosts }}
- host: {{ . }}
{{ end }}Kropka staje się elementem
Wewnątrz range kropka zostaje przypisana bieżącemu elementowi, a nie głównemu kontekstowi. Dlatego {{ . }} wypisuje element, który jest aktualnie przetwarzany.
hosts:
- api.example.com
- web.example.comIterowanie po prostej liście
W przypadku listy ciągów znaków range emituje jedną linię YAML dla każdej wartości. Wynikiem jest przejrzysta lista o dynamicznym rozmiarze, sterowana w całości przez values.
args:
{{ range .Values.flags }}
- {{ . }}
{{ end }}Indeks i wartość
Potrzebują Państwo również pozycji elementu? Należy przechwycić obie wartości za pomocą dwóch zmiennych. Range przekazuje najpierw indeks, a następnie wartość podczas każdej iteracji.
{{ range $i, $v := .Values.ports }}
# port {{ $i }} is {{ $v }}
{{ end }}Iterowanie po mapie
Podczas iterowania po mapie dwie zmienne stają się kluczem i wartością. To idealne rozwiązanie do przekształcania mapy values w etykiety lub zmienne środowiskowe.
{{ range $key, $val := .Values.labels }}
{{ $key }}: {{ $val }}
{{ end }}Klucze mapy są sortowane
Helm iteruje po kluczach mapy w kolejności alfabetycznej, a nie w kolejności ich wstawienia. Dzięki temu wyrenderowany wynik pozostaje stabilny i łatwy do porównywania między uruchomieniami.
Dostęp do głównego kontekstu wewnątrz pętli
Ponieważ kropka wskazuje teraz element, dostęp do .Values wewnątrz pętli jest niemożliwy. Należy najpierw przechwycić główny kontekst za pomocą $, aby nadal móc go odczytywać.
{{ range .Values.envs }}
name: {{ $.Release.Name }}-{{ . }}
{{ end }}Puste listy nic nie renderują
Jeśli kolekcja jest pusta, range po prostu nie generuje żadnego wyniku i pomija swój blok. Brak elementów oznacza brak treści pętli — dokładnie tego Państwo potrzebują.
Uważaj na wcięcia
Każda iteracja musi być wyrównana pod kluczem nadrzędnym. Pętle często łączy się z helperem indent, aby powtarzany YAML znalazł się na właściwym poziomie. 🧱
Łączenie range z if
Można zagnieździć if wewnątrz range, aby filtrować elementy podczas iteracji. Tylko elementy spełniające warunek renderują swój blok, a pozostałe są pomijane.
{{ range .Values.users }}
{{ if .active }}
- {{ .name }}
{{ end }}
{{ end }}Szybkie sprawdzenie
Iterują Państwo za pomocą {{ range .Values.hosts }} po liście ciągów znaków.
Podsumowanie
Potrafią już Państwo iterować za pomocą range, odczytywać elementy przez zmienioną kropkę, pobierać indeks lub klucz oraz uzyskiwać dostęp do głównego kontekstu za pomocą $. Powtarzanie zostało opanowane! 🎯
Często zadawane pytania
Czy lekcja „Iterowanie po listach i mapach za pomocą range” jest bezpłatna?
Tak — pełny tekst „Iterowanie po listach i mapach za pomocą range” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Iterowanie po listach i mapach za pomocą range”?
Generowanie powtarzającego się YAML z kolekcji. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Iterowanie po listach i mapach za pomocą range”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Bloki warunkowe z if i else
- Prawdziwość i operatory w warunkach
- Iterowanie po listach i mapach za pomocą range
- Ustalanie zakresu bloku za pomocą with