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

时间:2013-04-26 10:39:57

标签: rascal

我今天碰到了这个,我想知道这里有什么问题。

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 = {};

所以问题是,为什么必须在声明中初始化?

1 个答案:

答案 0 :(得分:2)

  • Rascal根本不允许使用未初始化的变量,但在这种情况下应该抱怨“未初始化”,而不是“未声明”
  • 找不到你的变量。您可以尝试在解除引用之前添加“example ::”吗?