0
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 »

错误是什么意思?

4

1 回答 1

0

问题是我使用==而不是=. 在 Jack 中,使用单个等于而不是双或三等来测试相等(双/三等在其他语言中是常​​规的)。

请参阅第 9 章 PDF幻灯片 22 中的第 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;
  }
}
于 2017-01-02T21:05:52.227 回答