0Pricing
DevOps Bootcamp · Lekcja

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.com

Iterowanie 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

  1. Bloki warunkowe z if i else
  2. Prawdziwość i operatory w warunkach
  3. Iterowanie po listach i mapach za pomocą range
  4. Ustalanie zakresu bloku za pomocą with
← Powrót do DevOps Bootcamp