0

我正在尝试在支持数组的 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>or List<Float>,因为它有一些技巧来支持我的动画系统,该系统使用情节提要引用部分矢量(参见http://www.youtube.com/watch?v=ijF50rRbRZI

在 C# 中,我可以写:

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

我已经阅读了 Haxe 文档并找到ArrayAccess<T>了,但是界面是空的。那就是我不明白如何实现它,或者如果我只是实现ArrayAccess<Float>......我的类上的什么方法将被调用以Float在所述索引处检索?

4

1 回答 1

2

Haxe 尚不支持运算符重载,因此您必须使用 get/set 对。如果您的方法内部发生的魔法需要针对速度进行优化,您可以使用内联。

于 2011-07-28T01:37:54.193 回答