我有以下代码,我不明白
shiftLeft = local.tasks.first != NULL;
if(!shiftLeft)
local.tasks.last = NULL;
我的意思是应该最后评估的shiftLeft变量(它是boolean),所以首先评估local.tasks.first!= NULL,但这是什么?
答案 0 :(得分:5)
这将返回true或false值(取决于local.task.first
是否为NULL
值的事实)。
如果local.task.first
为NULL
,shiftLeft
变量将获得false
值,
如果local.task.first
不是NULL
值,则shiftLeft
变量将获得true
值。
重要的是,我们不知道shiftLeft
的类型,如果它是一个bool变量,它将被填充"具有true
或false
值。如果它是其他类型的变量(例如整数),它将被填充" false
为0,为0 为true(但我们无法确定究竟是什么)。
答案 1 :(得分:3)
首先评估此!=
表达式,因为!=
的优先级高于=
,因此首先与NULL
进行比较,然后分配到shitLeft
。< / p>
如果shitLeft
为真,则if
条件为false
,否则为if
条件true
。
答案 2 :(得分:1)
b!= c 部分返回布尔响应(true或false)。然后将结果分配给 a 。
在您的示例中,如果local.tasks.first不为null,则shitLeft(sic)为true。否则就是假的。