الحفاظ على النقطة الجذرية داخل range
استخدم مرجعًا محفوظًا للجذر داخل الحلقات
الحفاظ على النقطة الجذرية داخل range درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 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» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «الحفاظ على النقطة الجذرية داخل range»؟
استخدم مرجعًا محفوظًا للجذر داخل الحلقات تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «الحفاظ على النقطة الجذرية داخل range»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعيين متغيرات القالب
- الحفاظ على النقطة الجذرية داخل range
- nindent مقابل indent عمليًا
- تصحيح أخطاء المسافات البيضاء المُصيّرة