0

次のように、配列を返す従来の asp 関数を使用しています。

        function myArray()
            dim tmpArray(2) 
            tmpArray(0) = "abc"
            tmpArray(1) = "xyz"
            tmpArray(2) = "bob"
            myArray = tmpArray
        end function 

代わりにこのように再構築し、tmpArray 変数をバイパスすることに利点があるかどうか知りたいですか?

        function myArray()
            myArray(0) = "abc"
            myArray(1) = "xyz"
            myArray(2) = "bob"
        end function 

このような単純なものではパフォーマンスがそれほど問題にならないことはわかっていますが、デプロイされたコードでは、それぞれが何百もの項目を含むこれらの配列を大量に使用している可能性があります。


おまけの質問:
2 番目の例では、配列のサイズを暗くするにはどうすればよいですか、それとも動的にする必要がありますか?

4

2 に答える 2

2

テストを実行すると (記録のために、VBA を使用しました)、2 番目のメソッドでスタック オーバーフロー エラーが発生しました。これは、myArray(0) = "abc"がmyArray()関数を再帰的に呼び出すだけだからです。

そこで、別のテストを試みました。配列を返す 2 番目の関数の代わりに、より高いスコープで宣言された配列を設定したので、配列を渡す必要はありませんでした。

1,000 個の要素配列を使用し、各関数を 10,000 回呼び出しました。最初の関数では 8 秒、2 番目の関数では 2 秒かかりました。

幸運を

于 2013-04-21T15:33:26.247 に答える
0

コンテキストの残りのコードを見ることができないため、私の提案について 100% 確信があるわけではありませんが、アイデアが得られる場合に備えて、それを述べます。データの取得元に応じて、目的に役立つさまざまな組み込み関数があります。「フランク、スー、テッド、ジョン」のような文字列がある場合: - 組み込みの Split() 関数を調べましたか? または、データがデータベース テーブルにある場合: - 組み込みの GetRows() 関数を調べましたか?

于 2013-04-22T03:24:06.103 に答える