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 אונליין