0

我最近开始玩 Haxe,在使用 AS3 一段时间后,在编写一个非常简单的游戏引擎时遇到了问题:

我有一堂课叫World. 其中一件事World就是跟踪Entity游戏中的所有对象。我希望这个Entity对象列表只能从引擎内部访问。引擎的用户应该不能直接修改列表。

在 AS3 中,我可以简单地使用internal关键字来访问同一包中的其他类。当这还不够时,我可以定义一个自定义命名空间并将其用作我的访问修饰符。但 Haxe 似乎没有这两个。

TL;DR:如何限制对特定包/命名空间的变量访问?如果不可能,我还有什么其他选择?

4

1 回答 1

2

如果您使用的是 Haxe 2.11(每晚构建),则可以使用@:allow.

Haxe.org 维基复制:

@:allow(my.pack) :这将为包 my.pack (及其子包)中的所有类提供对类的所有私有字段的访问权限。有关详细信息,请参阅访问控制。(自 2.11 起)

有关访问控制的更详细文档。

于 2013-01-17T02:27:10.900 回答