表达式
DataQL 具备完整的表达式计算能力,这使得数据在转换过程中在需要数值计算的情况上变得非常好用。对比 GraphQL 而言,省去了编写大量 Udf 的操作。
一个典型的场景就是是货币和汇率的转换。
- return orderByUser({'id': 4}) => {
- 'orderID',
- 'price_rmb' : '¥' + (price_rmb * 6.9) + '元' ,
- 'buyTime'
- }
一元运算
对一个 Bool 值进行去反操作:
- var bool = true;
- return !bool;
可以被一元运算的类型有:boolean、number
一元运算 | 针对的类型 | 语意 |
! | boolean | 对Boolean 取非 |
- | number | 数值的相反数 |
二元运算
例如 1 + 2 等于 3 的计算:
- var a = 1;
- var b = 2;
- return a + b;
二元运算符表
数学运算 | 位运算 | 比较运算 | 逻辑运算 | ||||
+ | 加法 | & | 按位于运算 | > | 大于 | || | 逻辑或 |
- | 减法 | | | 按位或运算 | >= | 大于等于 | && | 逻辑与 |
* | 乘法 | ! | 按位取反 | < | 小于 | ||
/ | 除法 | ^ | 异或 | <= | 小于等于 | ||
\ | 整除 | << | 左位移 | == | 等于 | ||
% | 取摸 | >> | 有符号右位移 | != | 不等于 | ||
>>> | 无符号右位移 |
提示
二元运算主要还是面向 number
。但加法运算是比较特殊的,它可以对任意类型做加法。执行结果就是两个数据字符串拼接。
三元运算
语法为:testExpr ? expr1 : expr2
- var bool = true;
- return (bool ? 1 : 2) ;