短路求值
本课属于 Coddy Lua 学习旅程的“基础知识”单元。第 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 在线编译器