我看到了一些代码(为Flash编写),如下所示:
var _array:Array<Int> = untyped __new__(Array, 10);
我发现它会创建一个Array
并且length
为10。
但是,当我尝试类似的东西时:
var _array:Array<Int> = untyped __new__(Array, 1, 2);
它会创建一个Array
,它有两个元素。
我对此感到困惑,__new__
的真正含义是什么?
答案 0 :(得分:4)
这是Haxe的“魔力”,见the wiki。
__new__
是调用本机构造函数,在Array
的情况下,它与Haxe公开的内容不同(Array
in Haxe doc vs Array
in AS3 doc)。
基本上使用__new__
使用长度和/或值初始化Array
,而无需手动执行:
var array = [];
for(i in 0...len) array.push(0);