第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但还是有一些区别。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还将帮助 支持 Lua 项目。
用 Lua 编程 | ||
第一部分。语言 第 3 章。表达式 |
print(4 and 5) --> 5 print(nil and 13) --> nil print(false and 13) --> false print(4 or 5) --> 4 print(false or 5) --> 5and 和 or 都使用短路求值,即它们仅在必要时才求值其第二个操作数。
一个有用的 Lua 惯用法是 x = x or v
,它等效于
if not x then x = v end即,当
x
未设置时,它将 x
设置为默认值 v
(前提是 x
未设置为 false)。
另一个有用的惯用法是 (a and b) or c
(或简单地 a and b or c
,因为 and 的优先级高于 or),它等效于 C 表达式
a ? b : c前提是
b
不为 false。例如,我们可以使用类似以下语句来选择两个数字 x
和 y
中的最大值
max = (x > y) and x or y当
x > y
时,and 的第一个表达式为 true,因此 and 产生其第二个表达式 (x
)(它也是 true,因为它是一个数字),然后 or 表达式产生其第一个表达式的值,x
。当 x > y
为 false 时,and 表达式为 false,因此 or 产生其第二个表达式,y
。
运算符 not 始终返回 true 或 false
print(not nil) --> true print(not false) --> true print(not 0) --> false print(not not nil) --> false
版权所有 © 2003–2004 Roberto Ierusalimschy。保留所有权利。 |