表达式
DataQL 具备完整的表达式计算能力,这使得数据在转换过程中在需要数值计算的情况上变得非常好用。这会节省大量精力很多的精力来编写 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;
数学运算 | 位运算 | 比较运算 | 逻辑运算 | ||||
---|---|---|---|---|---|---|---|
+ | 加法 | & | 按位于运算 | > | 大于 | || | 逻辑或 |
- | 减法 | | | 按位或运算 | >= | 大于等于 | && | 逻辑与 |
* | 乘法 | ! | 按位取反 | < | 小于 | ||
/ | 除法 | ^ | 异或 | <= | 小于等于 | ||
\ | 整除 | << | 左位移 | == | 等于 | ||
% | 取摸 | >> | 有符号右位移 | != | 不等于 | ||
>>> | 无符号右位移 |
tip
二元运算主要还是面向 number
。但加法运算是比较特殊的,它可以对任意类型做加法。执行结果就是两个数据字符串拼接。
三元运算
语法为:testExpr ? expr1 : expr2
var bool = true;
return (bool ? 1 : 2) ;