Menu
CoddyTech

التقييم قصير الدائرة

جزء من قسم الأساسيات في رحلة Lua على Coddy. الدرس 23 من 90.

عندما يقيّم Lua العاملين and وor، فإنه يستخدم قاعدة تُسمّى التقييم بالتوقف المبكر. وهذا يعني أن 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 تتخطاه عندما تكون lives مساويةً لـ nil:

lives = nil  -- لا توجد قيمة بعد

canPlay = lives ~= nil and lives > 0
print(canPlay)  -- false

من دون الاختصار عند التقييم، سيوقف lives > 0 البرنامج بخطأ، لأن nil لا يمكن مقارنتها بعدد. ستستخدم هذا كثيرًا: تحقّق من وجود قيمة قبل استخدامها.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Lua عبر الإنترنت