إقران Open بـ Close
احصلوا على الموارد وحرروها بشكل متناظر
إقران Open بـ Close درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
كل فتح يحتاج إلى إغلاق
تأتي الموارد في أزواج: فتح وإغلاق، وحجز وتحرير، وقفل وإلغاء قفل. والمهارة هي إبقاء كل زوج متوازناً.
اجمعهما في موضعهما
تتمثل عادة Zig في كتابة الإغلاق مباشرة بعد الفتح، باستخدام defer، حتى لا ينفصل الزوج عن بعضه أبداً.
const f = try open();
defer f.close();احجز ثم أجّل التحرير
ينطبق الإيقاع نفسه على الذاكرة. فبعد أن تحجز مباشرةً، جدْوِل التحرير حتى تُحرَّر الذاكرة عند الخروج.
const buf = try a.alloc(u8, 64);
defer a.free(buf);الأقفال تُلغى
تتبع Mutexes القاعدة نفسها. احصل على القفل، ثم أجّل إلغاء القفل حتى يُحرَّر القفل دائماً، حتى إذا عدت مبكراً.
mutex.lock();
defer mutex.unlock();النمط قابل للتوسّع
افتح عدة موارد، واحصل على defer خاص بكل منها. ويضمن الترتيب العكسي أن تُغلق بالترتيب الصحيح تلقائياً.
احمِ قيمة الإرجاع
عندما تنشئ الدالة مورداً وتعيده، استخدم errdefer للتحرير، حتى يبقى المورد عند النجاح ويُنظَّف عند الخطأ.
const node = try a.create(Node);
errdefer a.destroy(node);لا موارد مهجورة
لأن الإغلاق يوجد بجوار الفتح، لا تترك إعادة الهيكلة أو إضافة الفروع أي مورد مهجور ومتسرّب.
سهل المراجعة
يمكن للمراجع البحث عن كل عملية فتح والعثور فوراً على defer المطابقة لها. ويصبح غياب التنظيف واضحاً للوهلة الأولى.
التماثل هو الهدف
فكّر في الأمر باعتباره تماثلاً: لكل سطر يحصل على مورد سطر يحرّره قريباً منه، وتحافظ defer على تزامنهما.
وصفة قابلة لإعادة الاستخدام
احصل على المورد، ثم أجّل تحريره، ثم استخدمه. تغطي هذه الوصفة المؤلفة من ثلاث خطوات الملفات والذاكرة والأقفال ومعظم الموارد التي ستتعامل معها.
الثقة تحت الضغط
مع اقتران الحصول على المورد بتحريره، يمكنك إضافة عبارات العودة المبكرة ومعالجة الأخطاء بحرية، واثقاً من بقاء التنظيف صحيحاً.
تحقّق سريع
أين ينبغي عادةً وضع الإغلاق المطابق؟
مراجعة
اربط كل عملية فتح بعبارة defer للإغلاق في السطر التالي. ويحافظ هذا التماثل على توازن الملفات والذاكرة والأقفال في جميع المسارات. 🔐
الأسئلة الشائعة
هل درس «إقران Open بـ Close» مجاني؟
نعم — نص درس «إقران Open بـ Close» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «إقران Open بـ Close»؟
احصلوا على الموارد وحرروها بشكل متناظر تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إقران Open بـ Close»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.