gpt4 book ai didi

arrays - 将 Vector. 转换为数组?

转载 作者:行者123 更新时间:2023-12-04 11:15:18 25 4
gpt4 key购买 nike

不幸的是,在 Actionscript 中,似乎还没有完全支持 Vector 类。在某些情况下,我需要将 Vector 转换为数组(例如创建 ArrayCollection)。我认为这可以解决问题:

var myVector:Vector.<MyType> = new Vector.<MyType>();

var newArray:Array = new Array(myVector);

显然,这只是创建了一个数组,其中数组的第一个索引包含完整的 Vector 对象。这是我唯一的选择:
var newArray:Array = new Array(myVector);

for each(var item:MyType in myVector)
{
newArray.push(item);
}

我觉得这会使代码困惑很多,我需要在很多地方这样做。 Vector 类没有实现任何类型的接口(interface),所以据我所知,我无法创建通用函数来转换为数组。每次我想将向量转换为数组时,有什么方法可以做到这一点而不会添加这种困惑?

最佳答案

没有简单/快速的方法可以做到这一点,最好的解决方案是使用这样的实用程序类:

package {

public class VectorUtil {

public static function toArray(obj:Object):Array {
if (!obj) {
return [];
} else if (obj is Array) {
return obj as Array;
} else if (obj is Vector.<*>) {
var array:Array = new Array(obj.length);
for (var i:int = 0; i < obj.length; i++) {
array[i] = obj[i];
}
return array;
} else {
return [obj];
}
}
}
}

然后,您只需将代码更新为以下内容:
var myArray:Array = VectorUtil.toArray(myVector);

关于arrays - 将 Vector.<SomeType> 转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com