在Haxe中,如何为类实现数组运算符?

时间:2011-07-27 23:50:10

标签: haxe

我正在尝试使用[]运算符在Haxe中编写一个支持数组的类,例如:

var vector = new Vec3();
trace(vector.length); // displays 3
vector[0] = 1; // array like access to the class, how?
vector[1] = 5.6; // more array access
vector[2] = Math.PI; // yet more array access

问题是我不知道如何定义一个类,它允许[]运算符。我需要这个类,而不是使用Array<Float>List<Float>,因为它有一些技巧可以支持我的动画系统,它使用故事板引用部分向量(参见http://www.youtube.com/watch?v=ijF50rRbRZI

在C#中我可以写:

public float this[index] { get { ... } set { .... } }

我已阅读Haxe文档并找到ArrayAccess<T>,但界面为空。那是我不明白如何实现它,或者我只是实现ArrayAccess<Float> ...我的类上将调用哪个方法来检索Float所述< EM>索引

1 个答案:

答案 0 :(得分:2)

Haxe不支持运营商过载(尚未),因此您必须使用get / set对。如果你的方法中发生的魔法需要针对速度进行优化,你可以使用内联。