运算子
布尔运算子
布尔运算符在if和while语句中使用,因为布尔运算返回的是条件成立与否。下表给出了所有的布尔运算符。x,y,z表示数字,a和b表示布尔值。
| x > y | 大于 | x # y | 不等于 |
| x<y | 小于 | in_range(x,y,z) | x介于y和z之间时为真 |
| x >= y | 大于等于 | not a | 若a为假,则整体为真,反之亦然 |
| x <= y | 小于等于 | a and b | 若a、b均为真,则整体为真 |
| x = y | 等于 | a or b true | 若a或b为真,则整体为真 |
算数运算子
下表中是脚本语言中可用的算数运算子:
| x + y | 加 | -x | 取负 |
| x – y | 减 | abs(<表达式>) | 取表达式的绝对值 |
| x * y | 乘 | inc(<表达式>) | 向表达式加1 |
| x / y | 除 | dec() | 向表达式减1 |
| x mod y | 求余 |
位元运算子
下表中是可用的位元运算子
| x .and. y | 按位与 |
| x .or. y | 按位或 |
| .not. x | 按位否 |
| sh_left(<表达式>,<移位位元数>) | 将<表达式> 中的位元左移,移动量为<移位位元数> |
| sh_right(<表达式>,<移位位元数> | 将<表达式> 中的位元右移,移动量为<移位位元数> |
阵列函数
下列的函数可以简化阵列的使用:
| sort(<阵列变量>,<方向>) |
| 按升序或降序的次序排列阵列。方向=0时,按升序排列,否则为降序排列。 |
| num_elements(<阵列变量>) |
| 返回阵列元素中的元素数量。例如num_elements(%GROUPS_AFFECTED)返回当前事件(event)影响的音组(group)数量。 |
| search(<阵列变量>,<值>) |
| 在指定阵列中搜索值,并返回对应的索引。例如:$a := search(%array, 10)会在阵列中搜索数值10,并返回第一个匹配项的位置,赋值给$a。如果程序找不到对应值,则返回-1。 |
| array_equal(<阵列变量1>,<阵列变量2>) |
| 比对两个阵列的值,若相等则返回真。 |
随机数发生器
random()函数在<最小值>和<最大值>间生成随机数:
| random(<最小值>,<最小值>) |
| 生成随机数 |
