2017-08-22 127 views
2

我知道abap沒有真正的布爾類型。而是使用'X'和''。到這個時候,我總是用if語句這樣:如何在if語句中使用abap布爾值

IF myObj->is_sth() = abap_true. 

ENDIF. 

現在我做了這樣的事情:

IF myObj->is_sth(). 

ENDIF. 

我想知道,這似乎工作。返回類型是布爾值。我在Netweaver 7.4上。我可以毫無問題地使用它嗎?這就像我可愛的C#寫作:頁。

回答

4

這被稱爲predicative method call

表語方法調用的關係式,其唯一 操作數是一個功能性的方法調用甲基(...)。如果功能方法 調用的結果不是初始值,並且如果功能方法 調用的結果是初始值,則 關係表達式的結果爲true。函數方法調用的結果(返回值爲 的被調用函數方法的值)可以具有任何數據類型。檢查 是在類型友好的初始值。

與任何關係表達式一樣,謂詞方法調用可以是完整的邏輯表達式或邏輯表達式的一部分。這意味着它可以被指定爲控制語句和其他 語句中的條件,作爲布爾函數或條件式 表達式中的參數或與布爾運算符的連接中指定爲 。

這是introduced in 7.40 SP08。請注意,如果初始值爲false且false爲初始值,則此功能才能可靠工作。例如,IS-H使用字符字段,其中0爲假,而1爲真 - 但由於字符字段的初始值是空格,所以既不是真也不是假,因此使用任何返回此值的方法將總是作爲如果該方法已經返回true ...