0

これは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"bar"がそれぞれのオブジェクトであり、 が各オブジェクト=の開始アドレスが同じかどうかをテストしているためだと思います ( Jackでは、二重または三重の等号ではなく、単一の等号で等値がテストされることに注意してください)。私はまだ 10/11 章に到達していません。この仮説が正しいかどうかを確認するのはそのときです。

4

1 に答える 1