我当前在读取此代码时遇到问题。有人知道它的作用吗?
if (c == a)
return q[a] ? 1 : 0;
if内部的代码按照匹配运算符优先级的顺序进行求值。
因此,首先评估a + 1
,然后评估b == (a + 1)
。
如果b
等于(a + 1)
,则如果q[a]
是true
,则返回1
,否则返回0
。
参见C#运算符和表达式或优先级和求值顺序(根据语言的不同,您需要谷歌"语言名称"+运算符优先级(。
语句
return q[a] ? 1 : 0;
相当于
// Exact type of "zero" depends on the type of q[a]
if (q[a] != 0)
return 1;
else
return 0;
或
return !!q[a];
如果q[a]为非零,则返回1,否则返回0。
如果c==a
和q[a]
=true,则返回1
,否则返回0
。