您能解释一下这段代码中发生了什么(如何在代码中的注释中乘以4):
__defineGetter__
有没有更好或更清洁的方法来做到这一点?或者这是最佳的?
此外,此(或此类型)代码有用的任何实际情况?
感谢。
答案 0 :(得分:2)
?
是三元运算符,实际上是一个可返回的if / else语句
if (i>0)
return i multiplied by four (bitshift to the left two)
else
return negative i multiplied by four
~x+1
表示两个赞美并加一个,实际上是一个负数。这里的x
恰好是i<<2
对我来说,它看起来像是一些优化的类C代码。
对于#2,您指的是逻辑OR运算符吗?
a || b=c
由于首先评估a,如果a
为真,则总表达式为真,因此b=c
仅评估为a
为假。这实际上意味着if not a: b=c
答案 1 :(得分:1)
如果i
是肯定的:
它会将位向左移动两位,实际上与乘以4相同。
如果i
不是正数(是负数或零),它将再次乘以4,然后否定所有位(这是~
所做的)并加1(由于{{3 - 这是正数的必要条件)。