是否有任何现有的方法或功能模块可以有效地翻转布尔值?
如果我必须定义自己的实用工具方法,我会想出一个简单的实现,但我想知道这是否是最有效的方法:
IF iv_bool = abap_true.
rt_bool = abap_false.
ELSEIF iv_bool = abap_false.
rt_bool = abap_true.
ELSE.
rt_bool = abap_undefined.
ENDIF.
编辑:正如Smigs所说,这个实现翻转三值布尔值或者#34; trileans"
答案 0 :(得分:10)
rt_bool = boolc( iv_bool <> abap_true ).
将翻转布尔值。但是,它不会处理abap_undefined。
从740 SP08开始,您可以使用xsdbool( )
代替boolc( )
来获得相同的结果。给出的示例没有区别,但xsdbool( )
为safer when using in comparisons