0Pricing
Helm Academy · บทเรียน

รักษาจุดหลักไว้ภายใน range

ใช้การอ้างอิงรากที่เก็บไว้ภายในลูป

รักษาจุดหลักไว้ภายใน range เป็นบทเรียน Helm Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Helm Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน

จุดสามารถเปลี่ยนตำแหน่งได้

ภายในลูป range จุดจะไม่หมายถึงบริบทหลักของชาร์ตอีกต่อไป แต่จะชี้ไปยังรายการปัจจุบันแทน จุดนี้ทำให้ผู้เขียนครั้งแรกหลายคนสับสน

เหตุใดจึงเป็นปัญหา

เมื่อจุดถูกผูกใหม่ นิพจน์อย่าง .Values หรือ .Release จะใช้ไม่ได้อีกต่อไปภายในลูป เพราะบริบทหลักไม่ใช่จุดอีกแล้ว

เก็บบริบทหลักไว้ก่อน

วิธีแก้ไขนั้นง่ายมาก: ก่อนเริ่มลูป ให้บันทึกจุดบริบทหลักไว้ใน ตัวแปร จากนั้นจึงเข้าถึงบริบทเดิมผ่านตัวแปรนั้นภายใน range

{{ $root := . }}

ใช้บริบทหลักที่บันทึกไว้

ภายในลูป ให้เปลี่ยนเส้นทางที่ใช้กับทั้งชาร์ตให้ผ่านตัวแปรของคุณ เขียน $root.Values แทน .Values เพื่อออกจากจุดเฉพาะที่ใช้อยู่

{{ range .Values.items }}
release: {{ $root.Release.Name }}
{{ end }}

จุดเฉพาะที่ยังใช้งานได้

สำหรับรายการของลูปเอง ให้ใช้จุดธรรมดาต่อไป ภายใน range จุด คือองค์ประกอบปัจจุบัน ซึ่งตรงกับสิ่งที่คุณต้องการพอดี

{{ range .Values.ports }}
- port: {{ . }}
{{ end }}

ใช้รายการกับบริบทหลักร่วมกัน

เทมเพลตจริงมักต้องใช้ทั้งสองอย่างพร้อมกัน ได้แก่ รายการจากจุดและค่าของชาร์ตจากบริบทหลัก การบันทึก $root ช่วยให้คุณอ้างอิงแต่ละส่วนได้อย่างชัดเจน

{{ $root := . }}
{{ range .Values.hosts }}
host: {{ . }}.{{ $root.Values.domain }}
{{ end }}

แนวทางการตั้งชื่อที่พบบ่อย

ชาร์ตจำนวนมากตั้งชื่อตัวแปรนี้ว่า $root หรือ $top แต่คุณเลือกชื่อเองได้ สิ่งสำคัญคือการบันทึกจุดก่อนที่ range จะผูกจุดใหม่

range พร้อมดัชนีและค่า

รูปแบบที่มีตัวแปรสองตัวจะผูกดัชนีและค่าโดยตรง ทำให้จุดว่างอยู่ ถึงอย่างนั้น การบันทึก บริบทหลัก ก็ยังเป็นแนวทางที่ปลอดภัยที่สุด

{{ range $i, $v := .Values.ports }}
- {{ $i }}: {{ $v }}
{{ end }}

กับดักเดิมภายใน with

บล็อก with ก็ผูกจุดใหม่ให้ชี้ไปยังทรีย่อยเช่นกัน เทคนิคการบันทึกบริบทหลักแบบเดิมจะช่วยให้การอ้างอิงค่าทั้งชาร์ตภายในบล็อกนี้ทำงานได้

ทดสอบผลลัพธ์ของลูป

แสดงผลชาร์ตแล้วตรวจสอบลูป helm template จะแสดงให้เห็นว่าแต่ละรอบดึงค่าจากบริบทหลักได้ตามที่คาดไว้หรือไม่

helm template ./mychart

บันทึกก่อนเข้าสู่ลูป

ลำดับมีความสำคัญ: กำหนด $root := . ไว้นอกลูป หากบันทึกภายใน range จุดจะถูกผูกใหม่ไปแล้ว ทำให้คุณบันทึกค่าที่ไม่ถูกต้อง

ตรวจสอบอย่างรวดเร็ว

ภายในลูป range, {{ .Values.port }} กลับไม่คืนค่าใด ๆ อย่างกะทันหัน

สรุป

คุณได้เรียนรู้แล้วว่า range จะผูกจุดใหม่, $root := . ใช้บันทึกบริบทเดิม และจุดเฉพาะที่ใช้ในลูปยังคงหมายถึงรายการปัจจุบัน 🔁

คำถามที่พบบ่อย

บทเรียน “รักษาจุดหลักไว้ภายใน range” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “รักษาจุดหลักไว้ภายใน range” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Helm Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “รักษาจุดหลักไว้ภายใน range”

ใช้การอ้างอิงรากที่เก็บไว้ภายในลูป คุณปฏิบัติ Helm Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Helm Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Helm Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “รักษาจุดหลักไว้ภายใน range” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Helm Academy นี้ได้ไหม

ได้ บทเรียน Helm Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. กำหนดตัวแปรของเทมเพลต
  2. รักษาจุดหลักไว้ภายใน range
  3. nindent เทียบกับ indent ในการใช้งานจริง
  4. แก้ไขข้อผิดพลาดของช่องว่างที่ประมวลผลแล้ว
← กลับไปที่ Helm Academy