Nand To Tetris (Jack): Simple if conditional with equality testing giving this error - "Expected - or ~ or ( in term"
Nand To Tetris (Jack): Simple if conditional with equality testing giving this error - "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 中,使用单个 equals 而不是 double 或 triple 来测试相等性(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;
}
}
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 中,使用单个 equals 而不是 double 或 triple 来测试相等性(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;
}
}