细分表达式

细分表达式用于查询API原始数据导出API在查询数据时允许更具体。

分割的幂来自于根据位置和参数中的属性名称定义自定义表达式的能力。表达式由一个属性组成,并与一个或多个可以执行数学操作,逻辑操作或打字的运算符结合使用。然后将表达式应用于分割API的位置和参数。这里给出了表达式的完整语法:

 :: ='properties [“''“”]'|<表达> <二进制OP> <表达> | <表达> |'('')'|'('')'|'('')'|<布尔文字> |<数字文字> |<字符串文字>  :: ='+'|' - '| '*' | '/' | '%' | '==' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'and' | 'or'  ::= '-' | 'not'  ::= 'floor' | 'round' | 'ceil'  ::= 'boolean' | 'number' | 'string'  ::= 'properties["'  '"]'

例子

表达

描述

[1,2,3,4]中的属性[“ Account_id”]

返回真的如果帐户ID事件属性为1、2、3或4,否则错误的

用户[“ $ email”] ==”[电子邮件保护]

返回真的如果$电子邮件用户属性是[电子邮件保护]“ 否则错误的

定义(属性[“我的prop”])

返回真的如果我的道具事件属性有任何值,否则错误的。这与UI中的“设置”相同。

未定义(属性[“城市”])

返回错误的如果城市事件属性有任何值,否则真的。这与UI中的“未设置”相同。

打字操作

在内部,事件的所有属性都有类型。当我们解析将事件发送给我们的JSON对象时,确定了这种类型。当前,可以直接指定三种类型,字符串,数字和布尔值。属性也可能具有无定义的值,仅在内部进行处理。默认类型是字符串。如果您想将表达式视为另一种类型,则可以使用Typecast运算符将属性投放到其他类型。例如,如果属性[“注册”]有值“真的”“错误的”作为字符串,您希望将它们与布尔人进行分配,您可以使用boolean()打字函数:boolean(属性[“注册”])

打字规则如下所述。

铸造到字符串

类型

结果

细绳

同一字符串

数字

字符串包含该数字的小数表示。

布尔

“对或错”

无效的

无效的

不明确的

不明确的

铸造数字

类型

结果

细绳

试图将字符串解释为小数。如果失败,该值将变得不确定。

数字

相同的数字

布尔

1.0如果为true,0.0如果错误

无效的

不明确的

不明确的

不明确的

二进制操作

算术运算符“ - ”,,,,“*”,,,,“/”,,,,“%”分别执行减法,乘法,除法和剩余操作。如果除数为0,则分区运营商将返回未定义的符号。其余值的符号将等效于股息。这四个操作员都期望操作数是类型编号,否则结果是未定义的。

“+”如果操作员的两个操作数为类型编号,则操作员的行为是添加的。但是,如果其两个操作数是类型的字符串,则将连接两个字符串。在其他情况下,结果是不确定的。

等价操作员“ ==”总是会返回布尔值。当它的两种类型相等时,它会根据值执行标准平等比较。如果其操作数的类型不相等,则返回错误。不等于操作员“!=”当等价运营商将返回true,反之亦然时,返回false。

比较操作员“>”,,,,“> =”,,,,“ <”, 和“ <=”返回布尔值,基于评估其操作数均为类型编号时的比较。当它的类型不相等时,返回不确定的。

“在”如果两个操作数都是类型字符串,并且第一个字符串是第二个字符串,则操作员将返回true。当两个操作数都是不同类型的类型时,返回了未定义的。

逻辑操作员“和”“或者”接受布尔和未定义的操作数。具有未定义类型的操作数评估为错误。任何其他类型都会导致错误。

一般和数学操作

“ - ”操作员将否定类型编号的操作数,否则将返回未定义。

“不是”操作员将执行逻辑,而不是在布尔类型的操作数上执行。它还将评估不确定类型的操作数为真。所有其他操作数将被评估为未定义。

“地面”,,,,“圆形的”, 和“ Ceil”功能在类型号的操作数上执行其数学操作。在所有其他类型上,它将返回未定义。