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