1

我今天遇到了这个问题,我想知道这里是否出了问题。

module example

public rel[str file, AstNode namespace] relFileNamespace;
public void InitGlobals()
{
    relFileNamespace = {};
}

然后在控制台中:

rascal>import example;
ok

rascal>InitGlobals();
ok

rascal>relFileNamespace
|stdin:///|(0,13,<1,0>,<1,13>): Undeclared variable, function or constructor: relFileNamespace

如果我这样声明它确实有效。

public rel[str file, AstNode namespace] relFileNamespace = {};

那么问题来了,为什么一定要在声明中初始化呢?

4

1 回答 1

2
  • Rascal 根本不允许未初始化的变量,但在这种情况下它应该抱怨“未初始化”,而不是“未声明”
  • 它没有找到你的变量。您可以尝试在取消引用之前添加“example::”吗?
于 2013-04-26T11:00:20.367 回答