0Pricing
Helm Academy · レッスン

range でリストと Map をループする

コレクションから繰り返し YAML を生成します。

「range でリストと Map をループする」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。

コピー&ペーストせずに繰り返す

valueがリストを保持している場合、各項目を手入力することはほとんどありません。rangeアクションはコレクションをループし、各項目に対してYAMLをレンダリングします。

rangeアクション

ループは{{ range SOMETHING }}で始まり、{{ end }}で閉じます。その間のブロックは、コレクションの要素ごとに1回ずつレンダリングされます。🔁

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

ドットが項目になる

rangeの中では、dotはルートではなく現在の要素に再束縛されます。そのため{{ . }}は、現在の反復で処理している項目を出力します。

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

単純なリストをループする

文字列のリストに対してrangeを使うと、値ごとにYAMLの行が1つ出力されます。valuesだけでサイズが動的に変わる、整ったリストを作成できます。

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

インデックスと値

位置も必要ですか。2つの変数で両方を取得できます。rangeは各反復で、最初にindex、次にvalueを渡します。

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

Mapをループする

mapに対してrangeを使うと、2つの変数はkeyとvalueになります。valuesのmapをラベルや環境変数に変換するのに最適です。

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

Mapのキーはソートされる

Helmはmapのキーを挿入順ではなくalphabetical順に反復します。そのため、実行するたびにレンダリング結果が安定し、diffを確認しやすくなります。

内部からルートにアクセスする

ドットが現在の項目になっているため、ループ内では.Valuesにアクセスできません。ルートを$に保存しておけば、引き続き読み取れます。

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

空のリストは何も出力しない

コレクションが空の場合、rangeは何も出力せず、ブロックをスキップします。項目がなければループ本体も実行されないため、期待どおりの動作です。

インデントに注意する

各反復の出力は親キーの下に揃える必要があります。ループではindentヘルパーを組み合わせ、繰り返すYAMLを正しい深さに配置することがよくあります。🧱

rangeとifを組み合わせる

rangeの中にifを入れて、ループしながら絞り込めます。条件を満たした項目だけがブロックをレンダリングし、それ以外はスキップされます。

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

クイックチェック

{{ range .Values.hosts }}で文字列のリストをループしています。

まとめ

これでrangeを使ってループし、再束縛されたドットから項目を読み取り、インデックスやキーを取得し、$でルートにアクセスできるようになりました。繰り返し処理も思いのままです。🎯

よくある質問

「range でリストと Map をループする」レッスンは無料ですか?

はい。「range でリストと Map をループする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。

「range でリストと Map をループする」で何を学びますか?

コレクションから繰り返し YAML を生成します。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Helm Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「range でリストと Map をループする」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このHelm Academyレッスンでコードを書いて実行できますか?

はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. if と else による条件ブロック
  2. 条件式の真偽値と演算子
  3. range でリストと Map をループする
  4. with でブロックの Scope を限定する
← Helm Academyに戻る