1

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

module Foo

int x = 1;

int x() = 1;
4

1 回答 1

1

全局变量在 Rascal 中是默认private的,以防止你轻易地做这种肮脏的事情 :-)

module Foo

public int x = 1;

int x() = 1;

这有点不一致,因为该函数是public默认的,但当您认为我们最终会从语言中删除全局变量时却不是 :-)

于 2013-11-21T14:36:08.770 回答