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 に答える