是否有任何现有的方法或功能模块可以有效地翻转布尔值?
如果我必须定义自己的实用程序方法,我想出了一个简单的实现,但我想知道这是否是最有效的方法:
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所说,这个实现翻转三值布尔值或"trileans"
Smi*_*igs 10
rt_bool = boolc( iv_bool <> abap_true ).
将翻转布尔值.但是,它不会处理abap_undefined.
从740 SP08开始,您可以使用xsdbool( )而不是boolc( )实现相同的结果.不存在给定的例子中没有什么区别,但是xsdbool( )是更安全的使用比较时