码栈支持以下这些赋值符号,数学运算符,比较和逻辑运算符.
运算符 | 详细信息 |
赋值运算 | |
= |
赋值,如 $var = 5 (赋值数字5到 $var) |
+= |
自增赋值,如 $var += 1 (添加 1 到 $var) |
-= |
自减赋值. |
*= |
自乘赋值. |
/= |
自除赋值. |
&= |
连续赋值. 如 $var = "one", 然后 $var &= 10 ($var 的结果为 "one10") |
数学运算 | |
+ | 使两个数相加. 如 10 + 20 (等于 30) |
- | 使两个数相减.如 20 - 10 (等于 10) |
* | 使两个数相乘.如 20 * 10 (等于 200) |
/ | 使两个数相除.如 20 / 10 (等于 2) |
& | 使两个字符串连接起来.比如 "one" & 10 (等于"one10") |
^ | 提高某个数的幂.比如 2 ^ 4 (2 的 4次方,等于 16) |
比较运算 (大小写敏感的字符串需要使用 == 来比较) | |
= | 判断两个值是否相等. 比如 If $var= 5 Then (如果变量 $var 的值为 5 则条件成立). 用于字符串时不区分大小写 |
== | 判断两个字符串是否相等.左方和右方的值将会转化成字符串,并区分大小写,这个运算只能用于区分字符串大小写的比较. |
<> | 判断两个值是否不相等. 比较会对字符串大小写敏感. 要比较一个大小写敏感的不等于操作使用 Not ("string1" == "string2") |
> | 判断第一个值(左边)是否大于第二个值(右边).Strings are compared lexicographically even if the contents of the string happen to be numeric. |
>= | 判断第一个值(左边)是否大于或等于第二个值(右边).Strings are compared lexicographically even if the contents of the string happen to be numeric. |
< | 判断第一个值(左边)是否小于第二个值(右边). Strings are compared lexicographically even if the contents of the string happen to be numeric. |
<= | 判断第一个值(左边)是否小于或等于第二个值(右边). Strings are compared lexicographically even if the contents of the string happen to be numeric. |
逻辑运算 | |
AND | 逻辑与运算. 如 If $var = 5 AND $var2 > 6 Then (如果变量 $var 的值为 5 而且 变量 $var2 的值大于 6 则条件成立 ) |
OR | 逻辑或运算. 如 If $var = 5 OR $var2 > 6 Then (如果变量 $var 的值为 5 或者变量 $var2 的值大于 6 则条件成立) |
NOT | 逻辑非运算. 如NOT 1 (结果为False) |
当一个表达式内含有多个运算符时, 其结合的先后顺序由 运算符的优先级别来控制. 码栈中运算符的优先级如下所示.处于同一优先级的两种运算符将按 从左到右的顺序结合
越上面的运算符则优先级越高:
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR
例如表达式 2 + 4 * 10 的值将是 42,结合顺序如下:
4 * 10 (结果为40)
2 + 40 (结果为42)
乘号 * 拥有比加号 + 更高的优先级. 会进行先乘后加
您还可以使用括号来使表达式内的某些部分优先被计算.
如 (2 + 4) * 10 结果等于 60.
下方使用了逻辑操作 AND, OR:
e.g. If MyFunc1() OR MyFunc2() Then (如果 MyFunc1() 返回 true 则 MyFunc2() 不会被调用)
e.g. If MyFunc1() AND MyFunc2() Then (如果 MyFunc1() 返回 false 则 MyFunc2() 不会被调用)