如何在if语句中使用abap布尔值

问题描述:

我知道abap没有真正的布尔类型。而是使用'X'和''。到这个时候,我总是用if语句这样:如何在if语句中使用abap布尔值

IF myObj->is_sth() = abap_true. 

ENDIF. 

现在我做了这样的事情:

IF myObj->is_sth(). 

ENDIF. 

我想知道,这似乎工作。返回类型是布尔值。我在Netweaver 7.4上。我可以毫无问题地使用它吗?这就像我可爱的C#写作:页。

这被称为predicative method call

表语方法调用的关系式,其唯一 操作数是一个功能性的方法调用甲基(...)。如果功能方法 调用的结果不是初始值,并且如果功能方法 调用的结果是初始值,则 关系表达式的结果为true。函数方法调用的结果(返回值为 的被调用函数方法的值)可以具有任何数据类型。检查 是在类型友好的初始值。

与任何关系表达式一样,谓词方法调用可以是完整的逻辑表达式或逻辑表达式的一部分。这意味着它可以被指定为控制语句和其他 语句中的条件,作为布尔函数或条件式 表达式中的参数或与布尔运算符的连接中指定为 。

这是introduced in 7.40 SP08。请注意,如果初始值为false且false为初始值,则此功能才能可靠工作。例如,IS-H使用字符字段,其中0为假,而1为真 - 但由于字符字段的初始值是空格,所以既不是真也不是假,因此使用任何返回此值的方法将总是作为如果该方法已经返回true ...