0Pricing
Helm Academy · Урок

Циклы по спискам и отображениям с range

Создавайте повторяющийся YAML из набора данных

«Циклы по спискам и отображениям с range» — бесплатный урок Helm Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.

Повторяйте без копирования

Когда значение содержит список, обычно не хочется вводить каждый элемент вручную. Действие range перебирает коллекцию и выводит YAML для каждого элемента.

Действие range

Цикл начинается с {{ range SOMETHING }} и завершается {{ end }}. Блок между ними выводится один раз для каждого элемента коллекции. 🔁

{{ range .Values.hosts }}
- host: {{ . }}
{{ end }}

Точка становится элементом

Внутри range точка привязывается к текущему элементу, а не к корню. Поэтому {{ . }} выводит элемент, на котором находится текущая итерация.

hosts:
  - api.example.com
  - web.example.com

Перебор простого списка

Для списка строк range выводит по одной строке YAML для каждого значения. В результате получается чистый список с динамическим размером, полностью управляемый значениями.

args:
{{ range .Values.flags }}
  - {{ . }}
{{ end }}

Индекс и значение

Нужно получить ещё и позицию? Сохраните оба значения в двух переменных. При каждой итерации range сначала передаёт индекс, а затем значение.

{{ range $i, $v := .Values.ports }}
# port {{ $i }} is {{ $v }}
{{ end }}

Перебор карты

При переборе карты range передаёт в две переменные ключ и значение. Это идеально подходит для преобразования карты значений в метки или переменные окружения.

{{ range $key, $val := .Values.labels }}
{{ $key }}: {{ $val }}
{{ end }}

Ключи карты сортируются

Helm перебирает ключи карты в алфавитном порядке, а не в порядке добавления. Благодаря этому результат рендеринга остаётся стабильным и удобным для сравнения между запусками.

Доступ к корню изнутри

Поскольку точка теперь указывает на элемент, внутри цикла .Values недоступен. Сначала сохраните корень с помощью $, чтобы по-прежнему иметь к нему доступ.

{{ range .Values.envs }}
name: {{ $.Release.Name }}-{{ . }}
{{ end }}

Пустые списки ничего не выводят

Если коллекция пуста, range просто не выводит ничего и пропускает свой блок. Нет элементов — нет тела цикла, именно это Вам и нужно.

Следите за отступами

Каждая итерация должна быть выровнена под родительским ключом. В циклах часто используют помощник indent, чтобы повторяющийся YAML оказался на правильном уровне. 🧱

Объединение range с if

Вложите if внутрь range, чтобы фильтровать элементы во время перебора. Только элементы, прошедшие условие, выведут свой блок; остальные будут пропущены.

{{ range .Values.users }}
{{ if .active }}
- {{ .name }}
{{ end }}
{{ end }}

Быстрая проверка

Вы перебираете список строк с помощью {{ range .Values.hosts }}.

Итоги

Теперь Вы умеете выполнять циклы с помощью range, читать элементы через изменённую точку, получать индекс или ключ и обращаться к корню через $. Повторы больше не проблема! 🎯

Часто задаваемые вопросы

Урок «Циклы по спискам и отображениям с range» бесплатный?

Да — полный текст урока «Циклы по спискам и отображениям с range» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.

Чему я научусь в уроке «Циклы по спискам и отображениям с range»?

Создавайте повторяющийся YAML из набора данных Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Helm Academy?

Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Циклы по спискам и отображениям с range»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Helm Academy?

Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Условные блоки с if и else
  2. Истинность и операторы в условиях
  3. Циклы по спискам и отображениям с range
  4. Ограничение области видимости блока с with
← Назад к Helm Academy