عبارات الحراسة
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 68 من 78.
عندما تحتاج دالة إلى عدة عمليات تحقق، فإن وضع if داخل آخر يدفع العمل الفعلي إلى مستويات أعمق فأعمق:
func buy(gold: int, price: int) -> String:
if price > 0:
if gold >= price:
return "Bought! %d gold left" % (gold - price)
else:
return "Not enough gold"
else:
return "Invalid price"يعكس شرط الحراسة هذا الترتيب. فهو يتحقق من حالة واحدة غير صالحة في بداية الدالة ويخرج فورًا باستخدام return. لا يُنفَّذ الكود بعد شروط الحراسة إلا مع القيم الصالحة، ولا يحتاج إلى تداخل:
func buy(gold: int, price: int) -> String:
if price <= 0:
return "Invalid price"
if gold < price:
return "Not enough gold"
return "Bought! %d gold left" % (gold - price)buy(50, 30) تُرجع Bought! 20 gold left، وbuy(10, 30) تُرجع Not enough gold، وbuy(50, 0) تُرجع Invalid price.
ترتيب الشروط الحارسة مهم: يجب أن يأتي الشرط الحارس الذي يحمي سطرًا قبله. تحقّق من النص باستخدام is_valid_int() قبل استخدام الرقم، وتحقّق من أن القيمة ليست صفرًا قبل القسمة:
func share(coins: int, players: int) -> int:
if players <= 0:
return 0
return coins / playersفي دالة -> void، يكون الحارس عبارة عن return بمفرده. داخل حلقة، تعمل continue كحارس لعنصر واحد: فهي تتجاوز العنصر غير الصالح وتتابع الحلقة مع العنصر التالي.
التحدي
سهلاكتب الدالة process_data. تأخذ سلسلة نصية text وتُرجع سلسلة نصية:
- إذا لم تكن
textعددًا صحيحًا، فأعِدInput must be a number! - إذا كان العدد
0، فأعِدCannot divide by zero! - خلاف ذلك، اقسم
100.0على العدد وأعِد النتيجة بمنزلتين عشريتين
على سبيل المثال، تُرجع process_data("8") القيمة 12.50، وتُرجع process_data("-5") القيمة -20.00، وتُرجع process_data("abc") القيمة Input must be a number!.
اكتب الشرطين كعبارتي حراسة في بداية الدالة.
جرّب بنفسك
func process_data(text: String):
# اكتب الكود هنا
pass
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميس12أساسيات معالجة الأخطاء
ما المقصود بمعالجة الأخطاء؟التحقق من صحة المدخلاتعبارات الحراسةإرجاع رموز الأخطاءمراجعة - القسمة الآمنةتدرّب بنفسك: مترجم GDScript عبر الإنترنت