有人可以用简单的英语解释这句话背后的逻辑吗?
return mContainsLoadingRow ? (getContentDataSize() + 1) : getContentDataSize();
假设mContainsLoadingRow是布尔值,如果mContainsLoadingRow
是true
,
然后返回getContentDataSize() + 1
。
如果没有,请返回getContentDataSize()
。
这是看这个的正确方法吗?
答案 0 :(得分:3)
这个完整的表达式在Java
中被称为 Ternary Operator 。
mContainsLoadingRow ? (getContentDataSize() + 1) : getContentDataSize();
|| || ||
//boolean expression //return if true //return if false
此处为此代码
mContainsLoadingRow
是一个布尔变量,包含true
或false
。您也可以使用任何布尔表达式更改mContainsLoadingRow
,例如(a> b或b == a或b< = a等)
? (question mark)
: - 使我们能够判断它是真还是假。
如果true
表达式(getContentDataSize() + 1)
将返回。
如果false
,则表示getContentDataSize()
值将返回。
答案 1 :(得分:0)
int x = 0;
if (0 < 1){
x = 2;
}else{
x = 42;
}
// in short:
x = (0<1) ? 2 : 42;
是的,你是对的