作为Nand2Tetris课程的一部分,我正在使用一种名为Jack的语言。
这会编译并产生我在运行时期望的输出:
class Main {
function void main() {
var Foo f;
do f.doSomething();
return;
}
}
class Foo {
method void doSomething() {
do Output.printString("Hello, world!");
return;
}
}
但是当我添加一行时...
class Main {
function void main() {
var Foo f;
do f.doSomething();
var int i; // doesn't seem to matter what's here, anything breaks it
return;
}
}
...我得到这个编译器错误:
在 Main.jack(第 6 行)中:在子程序 main:预期语句(do、let、while、return 或 if)
为什么附加线会有所作为?