我可以将数组初始化为一系列值吗?

时间:2015-02-26 10:17:57

标签: arrays coldfusion range

使用ColdFusion,是否有任何简单的方法来初始化具有一系列数字的数组?

我知道我可以循环:

testArray = [];
    for(i=345;i<645;i++){
        ArrayAppend(testArray,i);
    }

是否有任何隐式方法来初始化数组并用一系列数字填充它?

2 个答案:

答案 0 :(得分:3)

据我所知,只有内置方法来初始化一个包含数据的数组是arrayset,它只允许你使用一个值,而不是一个范围。所以我说答案是否定的。也许你可以通过达到Java级别来解决它,但是没有任何内容可以作为内置的&#39;内置的&#39; CF func for this。

答案 1 :(得分:2)

雷已经回答了,但只是为了好玩:

<cfscript>

testArray  = createObject("java", "org.apache.commons.lang.math.IntRange")
                 .init(345,645).toArray();

writeOutput(testArray[1] & "<br>");

writeOutput(arrayLen(testArray) & "<br>");

writeOutput(arrayToList(testArray));

</cfscript>

跑我:http://www.trycf.com/scratch-pad/pastebin?id=gCG7EASp

请注意testArray实际上是int[]数组。尽管CF足够智能,但是某些数组函数(如arrayAppend()预期java.util.Vector)会失败。

我很惊讶不需要javacast("int", 345)