(これは、構造体に関する以前の質問へのフォローアップのようなものです)
これは:
<cfset myArray = ArrayNew(1)>
<cfloop query="myQuery">
<cfset myArray[1] = queryCol1>
<cfset myArray[2] = queryCol2>
<cfset myArray[3] = queryCol3>
<cfset funcionWithArrayParam(myArray)>
</cfloop>
... これよりも効率的にシステム リソースを使用します。
<cfloop query="myQuery">
<cfset functionWithArrayParam([queryCol1, queryCol2, queryCol3])>
</cfloop>
?
また、焦点を絞るために、最初の例の配列は、関数へのフィード以外の目的を果たさないと仮定します。また、クエリや列のデータが十分に大きく、効率を考慮する価値があると仮定します。
2 番目の方法はそのコンパクトさが魅力的ですが、私の懸念は、反復ごとに作成される新しい配列の数がわからないことです。CF では配列が値で渡されるため、最初の方法で配列が作成されると思います。しかし、それは 2 番目のメソッドが 2 つの配列 (暗黙的に作成されたものと、関数で使用するためのそのコピー) を作成することを意味するのでしょうか?
また、簡略記法と、配列を作成するための複数の cfset ステートメントとのパフォーマンスの比較について知ることも興味深いでしょう。前者も配列を作成するため、りんごとりんごではないことに気付きますが、それでも...これは自分で簡単にテストできると思います。