表达式

DataQL 具备完整的表达式计算能力,这使得数据在转换过程中在需要数值计算的情况上变得非常好用。对比 GraphQL 而言,省去了编写大量 Udf 的操作。

一个典型的场景就是是货币和汇率的转换。

  1. return orderByUser({'id': 4}) => {
  2. 'orderID',
  3. 'price_rmb' : '¥' + (price_rmb * 6.9) + '元' ,
  4. 'buyTime'
  5. }

一元运算

对一个 Bool 值进行去反操作:

  1. var bool = true;
  2. return !bool;

可以被一元运算的类型有:boolean、number

一元运算针对的类型语意
!boolean对Boolean 取非
-number数值的相反数

二元运算

例如 1 + 2 等于 3 的计算:

  1. var a = 1;
  2. var b = 2;
  3. return a + b;

二元运算符表

数学运算位运算比较运算逻辑运算
+加法&按位于运算>大于||逻辑或
-减法|按位或运算>=大于等于&&逻辑与
*乘法!按位取反<小于
/除法^异或<=小于等于
\整除<<左位移==等于
%取摸>>有符号右位移!=不等于
>>>无符号右位移

提示

二元运算主要还是面向 number。但加法运算是比较特殊的,它可以对任意类型做加法。执行结果就是两个数据字符串拼接。

三元运算

语法为:testExpr ? expr1 : expr2

  1. var bool = true;
  2. return (bool ? 1 : 2) ;