我知道 abap 没有真正的布尔类型。而是使用了 'X' 和 ' '。到目前为止,我总是这样使用 if 语句:
IF myObj->is_sth( ) = abap_true.
ENDIF.
Run Code Online (Sandbox Code Playgroud)
现在我做了这样的事情:
IF myObj->is_sth( ).
ENDIF.
Run Code Online (Sandbox Code Playgroud)
我想知道这似乎有效。返回类型是布尔值。我在 Netweaver 7.4 上。我可以毫无问题地使用它吗?这就像我可爱的 C# 写作:p。
这称为谓词方法调用:
谓词方法调用是一个关系表达式,其唯一的操作数是函数方法调用 meth( ... )。如果函数方法调用的结果不是初始的,则关系表达式的结果为真,如果函数方法调用的结果是初始的,则关系表达式的结果为假。函数方法调用的结果(被调用函数方法的返回值)可以是任何数据类型。对类型友好的初始值进行检查。
与任何关系表达式一样,谓词方法调用可以是完整的逻辑表达式或逻辑表达式的一部分。这意味着它可以指定为控制语句和其他语句中的条件,布尔函数或条件表达式中的参数,或与布尔运算符的连接。
这是在 7.40 SP08中引入的。请注意,这仅在初始值为 false 且初始值为 false 时可靠地工作。例如,IS-H 使用一个字符字段,其中0为 false 和1true - 但由于字符字段的初始值是一个空格,这既不是 true 也不是 false,因此使用任何返回此值的方法将始终分支,就好像方法返回真...