第一版是为 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) --> 5
and 和 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。保留所有权利。 | ![]() |