我可以将数组初始化为一系列值吗?
Can I initialize an array to a range of values?
使用 ColdFusion,有什么简单的方法可以用一定范围的数字初始化数组吗?
我知道我可以循环:
testArray = [];
for(i=345;i<645;i++){
ArrayAppend(testArray,i);
}
是否有任何隐式方法来初始化数组并用一系列数字填充它?
据我所知,唯一内置的方法是arrayset,它只允许你使用one 值,而不是范围。所以我会说答案是否定的。也许您可以通过达到 Java 级别来绕过它,但是没有任何东西可以作为 'built in' CF func。
Ray 已经回答,但只是为了好玩:
<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)
。
使用 ColdFusion,有什么简单的方法可以用一定范围的数字初始化数组吗?
我知道我可以循环:
testArray = [];
for(i=345;i<645;i++){
ArrayAppend(testArray,i);
}
是否有任何隐式方法来初始化数组并用一系列数字填充它?
据我所知,唯一内置的方法是arrayset,它只允许你使用one 值,而不是范围。所以我会说答案是否定的。也许您可以通过达到 Java 级别来绕过它,但是没有任何东西可以作为 'built in' CF func。
Ray 已经回答,但只是为了好玩:
<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)
。