未在声明中初始化的变量未知



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

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 = {};
那么问题来了,为什么要在声明中初始化呢?
  • Rascal根本不允许未初始化的变量,但在这种情况下它应该报错为"未初始化",而不是"未声明"
  • 没有找到您的变量。你能不能在取消引用之前加上"example::"?

最新更新