因此,ActionScript 3具有使用泛型的Vector类(Vector.)。我没有看到其他任何使用这种泛型的类。
如果您要自己实现Vector.,您会如何实现?
因此,ActionScript 3具有使用泛型的Vector类(Vector.)。我没有看到其他任何使用这种泛型的类。
如果您要自己实现Vector.,您会如何实现?
回到上面的haxe帖子...你可以在haxe中创建泛型,然后将代码编译为as3。最近没有尝试过它是如何处理的,但是.. http://haxe.org/doc/flash/as3gen
你可以创建一个以类型T作为参数的类,类似于这样 Foo( type:* )
然后在所有可以向Vector类添加项目的方法中,如果传递给该方法的对象的类型与我在实例化我的vector类时定义的类型不匹配,我会引发异常。
话虽如此,像这样的类可能不会获得很好的性能,因为每次处理对象时都需要在运行时检查其真实类型,在C++模板类中,类是在编译时创建的,因此不需要进行运行时类型检查。
AS3不支持泛型类声明。这里有一个很好的讨论链接
Object
的对象能否用作泛型? - Kris Welsh