2015-02-26 3 views
1

Использование ColdFusion, есть ли простой способ инициализировать массив с диапазоном чисел?Можно ли инициализировать массив в диапазоне значений?

Я знаю, что я могу цикл:

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

Есть ли неявный способ инициализировать массив и заполнить его с диапазоном чисел?

+0

Если вы собираетесь использовать диапазон значений, зачем вам хранить значения в массиве? – Pankaj

+0

@Pankaj - http://stackoverflow.com/questions/28740376/how-can-i-split-a-range-of-values-among-a-pool-of-threads :) – froadie

ответ

3

Насколько я знаю, единственный встроенный в метод инициализации массива с данными является arrayset, и это только позволяет использовать один значение, а не диапазон. Поэтому я бы сказал, что ответ отрицательный. Возможно, вы можете обойти это, нажав на уровень Java, но нет ничего, как встроенная функция CF для этого.

+0

О, хорошо. Благодарю. – froadie

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> 

RUN ME: http://www.trycf.com/scratch-pad/pastebin?id=gCG7EASp

Обратите внимание, что testArray действительно является int[] массив. Хотя CF достаточно умен, чтобы работать с ним, но определенная функция массива, такая как arrayAppend(), которая ожидает, что java.util.Vector потерпит неудачу.

Я удивлен, что нет javacast("int", 345).

Смежные вопросы