รักษาจุดหลักไว้ภายใน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กำหนดตัวแปรของเทมเพลต
- รักษาจุดหลักไว้ภายใน range
- nindent เทียบกับ indent ในการใช้งานจริง
- แก้ไขข้อผิดพลาดของช่องว่างที่ประมวลผลแล้ว