配列変数aに100件分を"A"で初期化する。
<cfset a = ArrayNew(1)> <cfset ArraySet(a, 1, 100, "A")>
ArraySet関数を使うと1行で初期化できます。
長いことColdFusionをやっていますが、
実はArraySet関数を使ったことがありませんでした。
cfloopで対応していました。
いまさらながら反省!!
ところで、本当にデータがセットされているか
確認したい場合は、
cfdump
というCFMLタグを使います。
上記解答の最後に
<cfdump var="#a#">
とすると、画面に表示されます。
cfdumpはデバックするときに重宝します。
ちなみに、なぜ初期化するかというと
あらかじめ指定された変数に値がはいっていない場合、
変数を表示しようとするとエラーとなるからです。
例)
<cfset a = ArrayNew(1)> <cfset ArraySet(a, 2, 100, "A")> <cfoutput> #a[1]# </cfoutput>
実行すると、
要素 1 は、型 class coldfusion.runtime.Array の Java object 内で未定義です。
というエラーが表示されました。
cfdumpで確認してみるとa[1]の内容は
[undefined array element]
と、なっています。