UiBot中UB语言的运算符与表达式
在编写代码时,运算符和表达式是不可或缺的组成部分,它们帮助我们实现变量之间的运算、逻辑判断以及数据操作。在UB语言中,运算符的设计充分考虑了易用性和实用性,力求让用户能够轻松掌握并应用这些运算符。
UB语言中的运算符
UB语言提供了一系列常用的运算符,它们可以被用于数学运算、字符串操作和逻辑判断。下表列出了这些运算符及其含义:
| 运算符 | 含义 | 运算符 | 含义 |
| | ---------- | | --------- |
| +
| 加法 | <
| 小于 |
| -
| 减法/求负 | <=
| 小于等于 |
| *
| 乘法 | >
| 大于 |
| /
| 除法 | >=
| 大于等于 |
| &
| 连接字符串 | <>
| 不相等 |
| ^
| 求幂 | =
| 相等/赋值 |
| And
| 逻辑与 | Or
| 逻辑或 |
| Not
| 逻辑非 | Mod
| 取余数 |
这些运算符的使用方式与其他编程语言类似,但也有一些需要注意的细节,尤其是在逻辑运算符和赋值运算符的使用上。
表达式的构成
在UB语言中,表达式是由变量、常量、值以及运算符和圆括号 ( )
组合而成的。通过表达式,可以实现数据的计算、比较以及逻辑操作。例如:
result = 5 + 3 * 2 // result 的值为 11,因为乘法优先于加法
一元运算符与二元运算符
UB语言中的运算符可以分为一元运算符和二元运算符:
一元运算符:只作用于一个元素。例如,
Not
是一个一元运算符,用于逻辑取反。isFalse = Not True // isFalse 的值为 False
二元运算符:作用于两个元素。例如,
+
是一个二元运算符,用于两个数相加。sum = 10 + 5 // sum 的值为 15
=
的双重含义
在UB语言中,=
运算符既可以用于判断相等,也可以用于赋值。这种设计尽管具有二义性,但对于初学者来说非常直观易懂:
相等判断:当
=
出现在表达式内部时,它表示判断两者是否相等。isEqual = (a = b) // 如果 a 和 b 相等,isEqual 为 True
赋值操作:当
=
独立使用时,它表示将右边的值赋给左边的变量。a = 10 // 将 10 赋值给变量 a
赋值与引用
在UB语言中,赋值操作可以为变量赋值,也可以为变量建立引用。特别是当你将一个数组或字典赋值给另一个变量时,这个变量实际上是原变量的一个别名,改变别名的内容会影响到原变量。这是因为数组和字典是引用类型,而不是值类型。
例如:
arr1 = [1, 2, 3] // 定义一个数组 arr1
arr2 = arr1 // arr2 是 arr1 的别名
arr2[0] = 10 // 修改 arr2 中的第一个元素
// 此时 arr1[0] 也变成了 10,因为 arr1 和 arr2 指向同一个数组
但是,如果数组或字典被重新赋值为其他类型的数据,如整数或字符串,原先的引用关系就会解除:
arr1 = [1, 2, 3] // 定义一个数组 arr1
arr2 = arr1 // arr2 是 arr1 的别名
arr1 = 100 // arr1 被重新赋值为整数
arr2[0] = 10 // 此时修改 arr2 不会影响 arr1
在这里,arr1
和 arr2
已经变成了两个独立的变量,互不影响。
运算符的优先级
在计算表达式时,不同运算符之间的优先级也会影响到最终结果。UB语言的运算符优先级与大多数编程语言一致:
- 括号内的表达式(最高优先级)
- 一元运算符(如
Not
,取负号-
) - 乘法、除法、求余运算(
*
,/
,Mod
) - 加法、减法(
+
,-
) - 字符串连接(
&
) - 关系运算符(如
<
,<=
,=
,<>
等) - 逻辑运算符(如
And
,Or
)
优先级的顺序决定了运算的先后顺序,但你可以使用括号 ()
来显式地控制计算顺序。
例如:
result = 5 + 3 * 2 // result 为 11,因为乘法优先于加法
result = (5 + 3) * 2 // result 为 16,因为括号中的加法先计算