วนซ้ำรายการและแผนที่ด้วย range
สร้าง YAML ที่ซ้ำกันจากชุดข้อมูล
วนซ้ำรายการและแผนที่ด้วย range เป็นบทเรียน Helm Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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 }}วนซ้ำผ่านแมป
เมื่อวนซ้ำผ่านแมป ตัวแปรสองตัวจะกลายเป็น คีย์ และค่า วิธีนี้เหมาะอย่างยิ่งสำหรับเปลี่ยนแมปจาก values ให้เป็นป้ายกำกับหรือตัวแปรสภาพแวดล้อม
{{ 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” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Helm Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “วนซ้ำรายการและแผนที่ด้วย range”
สร้าง YAML ที่ซ้ำกันจากชุดข้อมูล คุณปฏิบัติ Helm Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Helm Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Helm Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “วนซ้ำรายการและแผนที่ด้วย range” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Helm Academy นี้ได้ไหม
ได้ บทเรียน Helm Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บล็อกเงื่อนไขด้วย if และ else
- ค่าความจริงและตัวดำเนินการในเงื่อนไข
- วนซ้ำรายการและแผนที่ด้วย range
- กำหนด Scope ของบล็อกด้วย with