1

仍然在使用 Haxe 并正在寻找方法来拥有一个类似数组的只读集合,我可以在编译时为其指定一个类型

因此,理想情况下,我需要以下内容:

var collection:Collection<ItemType>;

var item:ItemType = collection[3];//or
var other:ItemType = collection.getAt(3);

//also, it would be good if it was iterable
for (item in collection)
{
//stuff
}

所以,就像一个数组,但只读。有人能给我一些指点吗,拜托。

非常感谢

4

1 回答 1

2

好吧,您不能像这样拥有只读数组访问权限,但是您可以使用方法来做到这一点:

class ReadonlyArray<T> {
    var source:Array<T>;
    public function new(source) this.source = source
    inline function get(index) return source[index]
    inline function iterator() return index.iterator()
}

开销应该几乎不明显。

于 2012-05-21T11:37:12.000 回答