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 

我知道在像这样简单的事情上性能并不是什么大问题......但是在部署的代码中,我们可能会使用大量这些数组,每个数组都包含数百个项目。


额外问题:
在第二个示例中,我将如何使数组大小变暗还是必须是动态的?

4

2 回答 2

2

在进行测试时(为了记录,我使用了 VBA),您的第二种方法产生了堆栈溢出错误,因为myArray(0) = "abc"只会递归调用myArray()函数。

所以我尝试了另一个测试。我没有第二个函数返回一个数组,而是设置了一个在更高范围内声明的数组,因此我不必传递任何数组。

我使用了 1,000 个元素数组,并调用了每个函数 10,000 次。第一个函数用了 8 秒,第二个函数用了 2 秒。

祝你好运

于 2013-04-21T15:33:26.247 回答
0

由于我看不到您的其余代码的上下文,因此我不能 100% 确定我的建议,但会说出来,以防它给您提供想法。根据您的数据来自哪里,有各种内置函数可能会满足您的目的。如果你有一个像 "frank, sue, ted, john" 这样的字符串,那么: - 你有没有研究过内置的 Split() 函数?或者,如果您的数据在数据库表中,那么: - 您是否查看过内置的 GetRows() 函数?

于 2013-04-22T03:24:06.103 回答