导入模块后模块中的全局变量无法访问

时间:2013-11-21 10:21:13

标签: rascal

我发现在Rascal控制台中,在导入包含全局变量定义的模块后,无法访问这些全局变量。只能访问全局函数名称。例如,在以下代码中,我在控制台中导入Foo后,我可以调用x()来获取1,但取消引用x会给我一个未绑定的变量错误。为什么呢?

module Foo

int x = 1;

int x() = 1;

1 个答案:

答案 0 :(得分:1)

在Rascal中,Globals是默认的private,以防止您轻易做出这样的肮脏: - )

module Foo

public int x = 1;

int x() = 1;

这有点不一致,因为默认情况下函数是public但是当你考虑我们最终会从语言中删除全局变量时不会这样: - )