汗 这个刚研究过...
1 ?: 条件运算符,右结合性
2 一元运算符左结合性的有[].()(method call) .
一元运算符右结合性 ! ~ ++ -- +(单目) -(单目) new
3 再看楼主这个 selforder <= order ? selforder != order ? -1 : 0 : 1;
加上括号后是(selforder <= order) ? ((selforder != order)? -1 : 0 ): 1;
1)为什么这么加括号,我们根据关系运算符大于条件运算符,2)条件运算是右结合的
3)注意虽然是右结合的但是 算起来却是从左往右算的.所以就容易理解了.
相当于 if(selforder<=order){
if(selforder!=order)
return -1;
else retern 0;
}
else
return 1;
4 既然是右结合性,为什么从左往右算?
1)您从右往左能算得了吗?
2)条件运算符本身就是像a>b?1:0 一样从左往右算的
|