Rob*_*cks 6 arrays flash vector actionscript-3 strong-typing
如何使用值数组初始化向量?
我试过这个,它很顺利,但不起作用!
langs = new Vector.<String>(["en","fr"]);
Run Code Online (Sandbox Code Playgroud)
我还需要将一个任意数组加载到一个向量中,如下所示:
langlist = ["en","fr"];
langs = new Vector.<String>(langlist);
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
编辑:如何使用2D数组值初始化2D矢量?
numbers = [[10,20,30], [10,20,30]];
nums = Vector.<Vector.<Number>>(numbers);
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它给了我错误:
TypeError:错误#1034:类型强制失败
小智 49
初始化字符串向量的适当语法是:
var langs:Vector.<String> = new <String>[ "en","fr" ];
Run Code Online (Sandbox Code Playgroud)
要创建多维向量,请使用以下语法:
var v:Vector.<Vector.<int>> = new <Vector.<int>>[ new <int>[ 1, 2, 3 ], new <int>[ 4, 5, 6 ] ];
Run Code Online (Sandbox Code Playgroud)
请注意,以下语法有效但不太理想,因为它首先生成一个数组,然后将其强制转换为Vector,这个速度较慢,存在非常大的数组问题,并且不支持多维向量.
var langs:Vector.<String> = Vector.<String>( [ "en","fr" ] );
Run Code Online (Sandbox Code Playgroud)
我认为您不能将数组数组传递到 Vector 中:
Vector.<Vector.<Number>>
Run Code Online (Sandbox Code Playgroud)
类型强制不适用于复杂类型。如果您已经有了二维数组,请考虑以下转换代码:
var numbers:Array = [[1, 2, 3], [4, 5, 6]];
var numbersTemp:Array =
numbers.map(
function (element:*, index:int, arr:Array):Vector.<Number> {
return Vector.<Number>(element);
});
var nums:Vector.<Vector.<Number>> = Vector.<Vector.<Number>>(numbersTemp);
Run Code Online (Sandbox Code Playgroud)
当然,这将导致所有内容的新副本被创建两次,因此理想情况下您不会转换大列表。