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;
}
}