表达式
表达式根据变量和文字值计算值。
算术运算
对数字值执行算术运算。如果在算术运算中使用字符串值,则将其转换为数字,如果失败,则返回错误。
|
|
a + b |
添加 a 和 b |
a-b |
从 a 中减去 b |
a * b |
将 a 和 b 相乘 |
a/b |
将 a 除以 b |
a% b |
modulo = a - math.floor(a/b)*b |
a ^ b |
将 a 加到 b 次方;b 可以是任意数字 |
-a |
否定 a |
关系运算
关系运算比较两个值,如果关系得到满足,则返回 true;如果不满足,则返回 false。可以在任何类型的值之间执行关系运算。如果这些值的类型不同,则返回 false。数字以通常的方式进行比较。使用当前语言环境的整理序列对字符串进行比较。
|
|
a == b |
a 等于 b |
a ~= b |
a 不等于 b |
a < b |
a 小于 b |
a > b |
a 大于 b |
a <= b |
a 小于或等于 b |
a >= b |
a 大于或等于 b |
逻辑运算
传统上,逻辑运算是针对布尔值执行的,但是在这种语言中,逻辑运算可以对任意两个值执行。nil 和 false 被视为假,任何其他值都被视为真。逻辑运算使用快捷方式求值,其中如果第一个值决定运算结果,则不计算第二个值。
|
|
a 和 b |
如果 a 为假或 nil 则返回 a 否则返回 b |
a 或 b |
如果 a 不是 false 也不是零,则返回 a 其他返回 b |
不是 |
如果 a 不是 false 或 nil 返回 false 否则返回真 |
和和或操作可用于表达式中的条件评估:
|
|
a 或 b |
如果 a 未初始化(nil),则可用于提供默认值 b。这对于函数中的可选参数很有用。 |
a 和 b 或 c |
可用于根据条件 a 选择非 nil b 或 c。如果 a 为 true,那么 a 和 b 返回 b,b 或 c 返回 b,如果 a 为假,那么 a 和 b 返回假和 false,或 c 返回 c。这相当于一个? b:c 在 C 编程语言。 |
串联
字符串连接是 s1.. s2。这将创建一个足够大的新字符串,以容纳 s1 和 s2 的内容,并将内容复制到新字符串中。如果 s1 或 s2 不是字符串,则会出现错误。请注意,重复串联可能会产生相当大的复制开销。如果您通过一次连接一个字节来构建 n 字节的字符串,这将复制 n* (n+1) /2 字节。为了提高性能,可以将要连接的字符串片段放入表中(稍后讨论),然后使用 table.concat () 函数。COMBINE_HEADERS () 示例中显示了这方面的一个示例。
长度
字符串 s 的长度由 #s 返回。# 运算符也与数组表一起使用,如下文所述。
优先级
运算符优先级决定在表达式中执行操作的顺序,优先级较高的操作先于优先级较低的操作。像往常一样,优先顺序可以用括号覆盖。例如,在 a + b \* c
,* 的优先级高于 +,因此表达式的计算结果为 a + (b \* c)
。
|
|
最高 |
|
- |
不是 #-(一元) |
- |
|
- |
.. |
- |
= ~= < > <= >= |
- |
和 |
最低 |
或 |
优先级相同的操作从左到右(左关联)执行,但 ^ 和.. 除外,它们是从右到左(右关联)。所以一个 ^ b ^ c 被评估为 ^(b^ c)。
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.
ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.
本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。
このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。
ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.