表达式
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) ;