covscript-docs

Covariant Script Documents

View the Project on GitHub

运算符与表达式

表达式由操作数和运算符组成

操作数 运算符 操作数

一般有左右两个操作数的运算符是二元运算符
只有一个操作数的运算符是一元运算符
二元运算符有结合律,左结合是从右向左运算,右结合是从左向右运算
所有的运算符都有优先级,优先级越高越先计算

一元运算符

运算符 优先级 功能
- 表达式 10 对数值进行数学取反运算
* 表达式 11 对指针进行解引用
typeid 表达式 14 获取表达式的类型信息
new 表达式 14 新建表达式表示的类型的对象
gcnew 表达式 14 新建表达式表示的类型的内存区块
! 表达式 8 对表达式进行非运算
++ 表达式 13 对表达式进行递增运算
表达式 ++ 13 对表达式进行递增运算并保留表达式原先的值
-- 表达式 13 对表达式进行递减运算
表达式 -- 13 对表达式进行递减运算并保留表达式原先的值

二元运算符

右结合运算符

运算符 优先级 结合律 功能
表达式 + 表达式 10 对数值进行数学加法运算或对文字进行拼接
表达式 - 表达式 10 对数值进行数学减法运算
表达式 * 表达式 11 对数值进行数学乘法运算
表达式 / 表达式 11 对数值进行数学除法运算
表达式 % 表达式 12 对数值进行数学取余运算
表达式 ^ 表达式 12 对数值进行数学幂运算
表达式 . 表达式 15 对各种对象进行访问
表达式 -> 表达式 15 对指针指向的各种对象进行访问

左结合运算符

运算符 优先级 结合律 功能
表达式 < 表达式 9 比较左侧数值是否小于右侧
表达式 > 表达式 9 比较左侧数值是否大于右侧
表达式 <= 表达式 9 比较左侧数值是否小于或等于右侧
表达式 >= 表达式 9 比较左侧数值是否大于或等于右侧
表达式 = 表达式 1 将右侧表达式的值赋予左边
表达式 += 表达式 1 对数值进行数学加法运算或对文字进行拼接后再将其值赋予左边
表达式 -= 表达式 1 对数值进行数学减法运算后再将其值赋予左边
表达式 *= 表达式 1 对数值进行数学乘法运算后再将其值赋予左边
表达式 /= 表达式 1 对数值进行数学除法运算后再将其值赋予左边
表达式 %= 表达式 1 对数值进行数学取余运算后再将其值赋予左边
表达式 ^= 表达式 1 对数值进行数学幂运算后再将其值赋予左边
表达式 == 表达式 9 比较两侧表达式的值是否相等
表达式 != 表达式 9 比较两侧表达式的值是否不相等
表达式 && 表达式 7 对两侧表达式进行与运算
表达式 and 表达式 7 对两侧表达式进行与运算
表达式 || 表达式 6 对两侧表达式进行或运算
表达式 or 表达式 6 对两侧表达式进行或运算

特殊运算符

运算符 优先级 结合律 功能
表达式 : 表达式 4 建立左侧表达式的值到右侧的映射
表达式(参数列表) 15 调用表达式表示的函数
表达式[表达式] 15 访问数组、哈希表或是文字中的元素

数组在访问时,若下标越界会自动增长,增长的部分填0;若下标为负则访问下标为长度-下标绝对值的元素
哈希表在访问时若映射不存在则将自动建立到0的映射

条件表达式

逻辑表达式 ? 表达式1 : 表达式2

逻辑表达式的值为真时整个表达式的值为表达式1
逻辑表达式的值为假时整个表达式的值为表达式2