操作表达式

在值或者绑定中,可以使用操作表达式计算结果。

每个括号中代表一个操作表达式,如"source_property_name": "(#text + 'test')",在这些操作表达式中又可以添加子表达式,如($test and not ($test1 or $test2))

他们也遵守四则运算法则,运算时优先运算括号内部的操作表达式。可以适当减少操作表达式的复杂性,提升可读性以及一些优化。

为了能更加清晰易懂的理解操作符号,我们将操作符号分几部分来讲,使用常量进行操作(常量可以替换为变量、绑定属性),以下是所有的操作符号:

基本计算符号

基本四则运算适用于任意数类型,包括但不限于数字。为了方便理解,使用数字常量举例。 提示
操作符号前后的空格可省略。
操作名操作符号示例结果备注
+(1 + 1)2字符串加字符时,就等于在字符串末尾追加字符。
-(1 - 1)0字符串减字符时,就等于在字符串去除某个字符。
*(2 * 2)4
/(4 / 2)2

比较符号

使用比较符号的操作表达式输出结果是布尔值。 提示
操作符号前后的空格可省略。
操作名操作符号示例结果备注
等于=(1 = 1)true若等于返回 true,反之 false。
不等于(not (1 = 1))false若不等于返回 true,反之 false。
大于>(2 > 1)true若符合返回 true,反之 false。
小于<(0 < 1)true若符合返回 true,反之 false。
大于或等于(2 > 1 or 2 = 1)true若符合返回 true,反之 false。
小于或等于(1 < 1 or 1 = 1)true若符合返回 true,反之 false。

包含符号

使用包含符号的操作表达式输出结果是布尔值。 提示
操作符号前后的空格可省略。
操作名操作符号示例结果备注
开头含有>('testABC' > 'test')true若含有返回 true,反之 false。
末尾含有<('ABCtest' < 'test')true若含有返回 true,反之 false。

格式化

具体语法详见格式化语法提示
操作符号前后的空格可省略。
格式化名格式化符号示例结果备注
转义%%('abc' + '%%')abc%%会识别为格式化操作,需要转义。
字符串%s('abc%s' * 'def')abcdef将字符串中的%s都替换成后方的值。
整数%d('abc%d' * '123')将字符串中的%d都替换成后方整数形式的值。
字段宽度%.*s('abcdefg' * '%.4s')abcd用于指定字符串出现在结果中的最小字符数。

逻辑

以下是简单的逻辑符号,下方重点讲解逻辑关系:
逻辑名逻辑符号示例结果备注
or(true or false)trueor 其中一边约等于 true 返回 true,反之 false。
and(true and true)trueand 两边都约等于 true 返回 true,反之 false。
not(not true)false对 not 后方的值进行取反操作。
提示
逻辑符号与常量、变量和绑定属性之间需要空格。
以下是进一步的逻辑关系:

与非门

逻辑表达式:not (A and B)

与非门是与门和非门的组合。它有两个输入和一个输出。输出是与门的输出取反。

AB结果
falsefalsetrue
falsetruetrue
truefalsetrue
truetruefalse

或非门

逻辑表达式:not (A or B)

或非门是或门和非门的组合。它有两个输入和一个输出。输出是或门的输出取反。

AB结果
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

异或门

逻辑表达式:not (A = B)

当且仅当两个输入不同时,输出为真。

AB结果
falsefalsefalse
falsetruetrue
truefalsetrue
truetruefalse

同或门

逻辑表达式:A = B

同或门是异或门的输出取反。

AB结果
falsefalsetrue
falsetruefalse
truefalsefalse
truetruetrue