Euphoria - 运算符

Euphoria 提供了一组丰富的运算符来操作变量。 我们可以将所有 Euphoria 运算符分为以下几组 −

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他操作符

算术运算符

算术运算符在数学表达式中的使用方式与在代数中的使用方式相同。 下表列出了算术运算符。 假设整数变量 A 为 10,变量 B 为 20,则 −

显示示例

运算符 描述 示例
+ 加法 - 在运算符两侧添加值 A + B 将给出 30
- 减法 - 从左手操作数中减去右手操作数 A - B 将给出 -10
* 乘法 - 将运算符两侧的值相乘 A * B 会给 200
/ 除法 - 将左手操作数除以右手操作数 B / A 会给 2
+ 一元加 - 这对变量值没有影响。 +B 给出 20
- 一元减 - 这会创建给定变量的负值。 -B 给出 -20

关系运算符

Euphoria 语言支持以下关系运算符。 假设变量 A 为 10,变量 B 为 20,则 −

显示示例

运算符 描述 示例
= 检查两个操作数的值是否相等,如果相等则条件成立。 (A = B) 不成立。
!= 检查两个操作数的值是否相等,如果值不相等则条件成立。 (A!= B)成立。
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 (A > B) 不成立。
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 (A < B) 成立。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件成立。 (A >= B) 不成立。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 (A <= B) 成立。

逻辑运算符

下表列出了逻辑运算符。 假设布尔变量 A 为 1,变量 B 为 0,则 −

显示示例

运算符 描述 示例
and 称为逻辑与运算符。 如果两个操作数均非零,则条件为 true。 (A and B)为 false。
or 称为逻辑或运算符。 如果两个操作数中的任何一个不为零,则条件为 true。 (A or B) 为 true。
xor 称为逻辑异或运算符。 如果其中之一为 true,则条件为 true,如果两个操作数都为 true 或 false,则条件变为 false。 (A xor B) 为 true。
not 调用逻辑 NOT 运算符,对结果取反。 使用此运算符,true 变为 false,false 变为 true not(B) 为 true。

您还可以将这些运算符应用于 1 或 0 以外的数字。约定是:零表示 false,非零表示 true

赋值运算符

Euphoria 语言支持以下赋值运算符 −

显示示例

运算符 描述 示例
= 简单赋值运算符,将右侧操作数的值赋给左侧操作数 C = A + B 将把 A + B 的值赋值给 C
+= 添加AND赋值运算符,它将右操作数添加到左操作数并将结果赋给左操作数 C += A 相当于 C = C + A
-= 减法AND赋值运算符,左操作数减去右操作数,并将结果赋给左操作数 C -= A 相当于 C = C - A
*= 乘法AND赋值运算符,将右操作数与左操作数相乘,并将结果赋给左操作数 C *= A 相当于 C = C * A
/= 除与赋值运算符,它将左操作数与右操作数相除,并将结果赋给左操作数 C /= A 相当于 C = C / A
&= 连接运算符 C &= {2} 等同于 C = {C} & {2}

注意 − 赋值语句中使用的等号"="不是运算符,它只是语法的一部分。

其他运算符

Euphoria 语言支持的其他运算符很少。

'&' 运算符

可以使用 "&" 运算符连接任意两个对象。结果是一个长度等于连接对象长度之和的序列。

例如 −

#!/home/euphoria-4.0b2/bin/eui

sequence a, b, c
a = {1, 2, 3}
b = {4}
c = {1, 2, 3} & {4}

printf(1, "Value of c[1] %d\n", c[1] )
printf(1, "Value of c[2] %d\n", c[2] )
printf(1, "Value of c[3] %d\n", c[3] )
printf(1, "Value of c[4] %d\n", c[4] )

这会产生以下结果 −

Value of c[1] 1
Value of c[2] 2
Value of c[3] 3
Value of c[4] 4

Euphoria 运算符的优先级

运算符优先级决定表达式中术语的分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。

例如,x = 7 + 3 * 2

此处,x 被分配为 13,而不是 20,因为运算符 * 的优先级高于 +。

因此它首先从 3*2 开始,然后添加到 7。

此处,优先级最高的运算符出现在表的顶部,优先级最低的运算符出现在底部。 在表达式中,首先计算优先级较高的运算符。

类别 运算符 优先级
后缀 函数/类型调用  
一元 + - ! not 从右到左
乘法 * / 从左到右
加法 + - 从左到右
串联 & 从左到右
关系 > >= < <= 从左到右
等于 = != 从左到右
逻辑 AND and 从左到右
逻辑 OR or 从左到右
逻辑 XOR xor 从左到右
逗号 , 从左到右