Nand 到俄罗斯方块(杰克):如果条件简单,则相等性测试给出此错误 - "Expected - or ~ or ( in term"


class Main {
  function void main() {
    var String foo;
    let foo = "bar";
    if (foo == "bar") {
      do Output.printString("true");
    }
    else {
      do Output.printString("false");
    }
    return;
  }
}

我收到错误:Expected - or ~ or ( in term

全输出:

code/nand2tetris » tools/JackCompiler.sh projects/09/Test
Compiling /Users/adamzerner/code/nand2tetris/projects/09/Test
In Main.jack (line 6): In subroutine main: Expected - or ~ or ( in term
code/nand2tetris »

错误是什么意思?

问题是我用了==而不是=。在 Jack 中,测试相等是否使用单等号而不是双等或三等(双/三等号在其他语言中是约定俗成的)。

请参阅第 9 章 PDF 幻灯片第 22 条中的项目符号 7 中的项目符号 7,以获取说明相等比较是用单个相等完成的文档。

有关示例SquareGame.jack请参阅课程软件中的第 40 行。

以下代码编译时没有错误。它没有给出预期的输出,但原因是一个单独的主题。

class Main {
  function void main() {
    var String foo;
    let foo = "bar";
    if (foo = "bar") {
      do Output.printString("true");
    }
    else {
      do Output.printString("false");
    }
    return;
  }
}

相关内容

最新更新