表达式

表达式根据变量值和文字值计算值。

  • 算术运算
  • 关系操作
  • 逻辑操作
  • 连接
  • 长度
  • 优先级

算术运算

对数值执行算术运算。如果在算术运算中使用字符串值,则将其转换为数字 — 如果失败,则返回错误。

a+b 添加 A.和 B
a-b 从 A.中减去 B
a*b 乘以 A.和 B
a/b 将 A.除以 B
a%b 模=a-数学楼层(a/b)*b
a^b 将 A.提高到 B功率; B可以是任意数字
-a 否定一个

关系操作

关系运算比较两个值,如果关系满足,则返回 符合事实的如果不满足,则返回 错误的关系操作可以在任何类型的值之间执行。如果这些值不是相同的类型,则返回 错误的数字以通常的方式进行比较。使用当前区域设置的排序序列对字符串进行比较。

A. A.等于 B
a〜b A.不等于 B
a A.小于 B
a>b A.大于 B
a<=b A.小于或等于 B
a>=b A.大于或等于 B

逻辑操作

逻辑操作传统上是在布尔值上执行的,但在这种语言中,它们可以在任意两个值上执行。无和 错误的被认为是假的,任何其他值都被认为是真的。逻辑运算使用短距求值,其中如果第一个值确定操作的结果,则不评估第二个值。

A.和 B 如果 A.是假或零,则返回其他返回 B
A.或 B 如果 A.不是假的,不是零,那么返回一个其他返回 B
不是 如果 A.不是假或零返回 错误的否则返回 符合事实的

和和或操作可用于表达式中的条件评估:

A.或 B 如果 A.未初始化(无)则可用于提供默认值 B这对于函数中的可选参数非常有用。
A.和 B或 C 可以用来根据条件 A.选择非零 B或 C如果 A.为 符合事实的那么 A.和 B返回 b、 b或 C返回 B如果 A.为假,那么 A.和 B返回假和 错误的或 C返回 C这相当于一个? b:c在 C编程语言。

连接

字符串连接是 s1..s2这会创建一个足够大的新字符串以容纳 s1和 s2的内容,并将内容复制到新字符串中。如果 s1或 s2不是字符串,则会出现错误。请注意,重复连接可能会有相当大的复制开销。如果您通过一次连接一个字节来构建 N个字节的字符串,这将复制 n*(n+1)/2个字节。为了获得更好的性能,您可以将一个字符串的片段连接到一个表中(稍后讨论),然后使用 表1.concat()函数。这方面的一个示例显示在组合标题 () 示例中。

长度

字符串 s的长度由 #s返回。# 运算符也与数组表一起使用,如下文所述。

优先级

运算符优先级决定在表达式中执行操作的顺序,优先级较高的操作先于优先级较低的操作。优先顺序可以像往常一样被括号覆盖。例如,在a+b\*c, * 的优先级高于 +,因此表达式评估为a+(b\*c)

最高 ^
- 不是 #-(一元)
- * / %
- ..
- = ~= < > <= >=
-
最低

具有相同优先级的操作从左到右(左关联)执行,但是从右到左执行的 ^ 和.. 除外(右关联)。所以一个 ^ b^c被评估为 ^(b^c)

表达式