Skip to content

14.2.7 Macro Expressions ​

宏表达式用于条件展开和循环,这些将在后续章节中描述。宏表达式可以使用下列运算符,按运算符优先级从高到低列出:

()

括号覆盖默认的运算符优先级。

!EQ !NE !GT !LT !GE !LE = ~= <> > < >= <=

关系运算符比较其操作数并产生布尔结果,‘0’表示假,‘1’表示真。

这些运算符总是将其操作数作为字符串进行比较。当字符串是数字时这可能令人意外,因为例如 1 < 1.0 和 10 < 2 都求值为‘1’(真)。

比较区分大小写,因此 a = A 求值为‘0’(假)。

!NOT ~!AND &!OR |

逻辑运算符将其操作数解释为布尔值,其中带引号或不带引号的‘0’为假,其他任何值为真,并产生布尔结果,‘0’表示假,‘1’表示真。

宏表达式不包含任何算术运算符。

表达式中的操作数可以是单个记号(包括宏参数名)或宏函数调用。无论哪种情况,表达式求值器都会对该操作数去引号,因此 1 = '1' 为真。

基于 GNU PSPP 2.0.1 手册与入门教程整理