这是输出false
而不是true
. 为什么是这样?
class Main {
function void main() {
var String foo;
let foo = "bar";
if (foo = "bar") {
do Output.printString("true");
}
else {
do Output.printString("false");
}
return;
}
}
我怀疑这是因为foo
and"bar"
是每个对象,并且=
测试每个对象的起始地址是否相同(请注意,在 Jack 中,相等性是用单个等于测试的,而不是两个或三个等于)。我还没有读到第 10/11 章,那时我会发现这个假设是否正确。