【问题标题】:In Haxe how do you implement array operators for a class?在 Haxe 中,如何为类实现数组运算符?
【发布时间】:2011-07-27 23:50:09
【问题描述】:

我正在尝试使用 [] 运算符在 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在所说的index?

【问题讨论】:

    标签: haxe


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 2016-02-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多