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 »
错误是什么意思?
答案 0 :(得分:0)
问题在于我使用了==
而不是=
。在Jack中,使用单个等于而不是双倍或三倍来测试相等(在其他语言中,使用double / triple equals是传统的)。
请参阅Chapter 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;
}
}