我在Android SDK文档中找到了以下示例代码:
boolean retValue = false;
retValue |= mActionBarHelper.onCreateOptionsMenu(menu);
retValue |= super.onCreateOptionsMenu(menu);
任何人都可以向我展示相同的代码,以证明这有什么作用吗?
注意:我假设方法调用返回一个布尔值,所以我想看一个示例,它看起来像if-else结构。
答案 0 :(得分:8)
|应用于布尔值只是一个简单的布尔OR。
boolean retValue = false;
retValue = retValue | mActionBarHelper.onCreateOptionsMenu(menu);
retValue = retValue | super.onCreateOptionsMenu(menu);
答案 1 :(得分:2)
or
与我自己的简写并分配给我,虽然它是非短路or
而不是逻辑or
。因为它可以作为分配的简短版本和or:ing有时用于布尔值,因为没有|| =。
但重要提示:在这种情况下,将调用这两种方法,即使retValue可能已经是true
所以等价(逻辑明智)语句可以是几个,但有些可能是:
boolean a = mActionBarHelper.onCreateOptionsMenu(menu);
boolean b = super.onCreateOptionsMenu(menu);
boolean retValue = a || b;
或
boolean retValue = mActionBarHelper.onCreateOptionsMenu(menu);
retValue = super.onCreateOptionsMenu(menu) || retValue;