التقييم قصير الدائرة
جزء من قسم Fundamentals في رحلة Lua على Coddy — الدرس 23 من 90.
بالنسبة لعوامل and و or، فإنها تستخدم تحسينًا ذكيًا يسمى التقييم قصير الدائرة (short-circuit evaluation). وهذا يعني أن Lua تتوقف عن التقييم بمجرد معرفة النتيجة النهائية، مما قد يؤدي إلى تخطي أجزاء من التعبير تمامًا.
بالنسبة لمعامل and، إذا كان الشرط الأول false، فإن Lua تدرك فوراً أن التعبير بالكامل سيكون false دون التحقق من الشرط الثاني:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- تتحقق Lua فقط من playerAlive (false)، ولا تقوم أبداً بتقييم hasWeaponوبالمثل، بالنسبة لعامل or، إذا كان الشرط الأول true، فإن Lua تعلم أن النتيجة ستكون true وتتخطى الشرط الثاني:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- تتحقق Lua فقط من hasKey (true)، ولا تقيم hasPassword أبداًورقة مرجعية
تستخدم لغة Lua التقييم قصير الدائرة (short-circuit evaluation) لمعاملي and و or، حيث يتم إيقاف التقييم بمجرد معرفة النتيجة النهائية.
بالنسبة لمعامل and: إذا كان الشرط الأول false، فلن يتم تقييم الشرط الثاني أبداً:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- يتحقق فقط من playerAlive (false)، ويتخطى hasWeaponبالنسبة لمعامل or: إذا كان الشرط الأول true، فلن يتم تقييم الشرط الثاني أبداً:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- يتحقق فقط من hasKey (true)، ويتخطى hasPasswordجرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات 2: العمليات العلائقية والمنطقية
معاملات التساويالمعاملات العلائقيةالمعامل 'and'المعامل 'or'المعامل 'not'التقييم قصير الدائرةقيم Truthy و Falsyمراجعة - المنطق البسيط10الجداول الجزء 1: نمط القائمة
ما هو الجدول؟إنشاء جدولالوصول إلى العناصر عبر الفهرستعديل العناصر عبر الفهرسمعامل الطول '#'table.insert()table.remove()ملخص - إدارة أعضاء الفريق13مشروع: متجر جرعات بسيط
إعداد المشروعإضافة جرعة2المتغيرات وأنواع البيانات
ما هو المتغير؟الأرقامالسلاسل النصيةالقيم المنطقيةالقيمة 'nil'الدالة type()قواعد التسميةمراجعة - ملف الشخصية5الإخراج الأساسي
طباعة القيم الحرفيةطباعة المتغيراتطباعة قيم متعددةدمج النصوص والمتغيراتدالة tostring()الإدخال (Input)التحويل (Cast)مراجعة - تقرير الحالةمراجعة - حتى 1208أساسيات معالجة النصوص
string.len()string.upper و string.lowerstring.sub()string.rep()string.find()مراجعة - تنسيق اسم المستخدم3المعاملات 1: العمليات الحسابية والدمج
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسدمج النصوصأولوية المعاملاتملخص - حسابات بسيطة6مشروع: عرض إحصائيات الشخصية
رسالة ترحيبتعريف إحصائيات الشخصية9أساسيات الدوال
تعريف دالةاستدعاء دالةدوال مع معاملاتدوال بمعاملات متعددةجملة 'return'مراجعة - حاسبة المساحة12أساسيات الحلقات التكرارية
حلقة whileحلقة repeat-untilحلقة for الرقميةحلقة for مع خطوةجملة 'break'مراجعة - العد التنازلي