我应该在本地制作一个大数组吗

本文关键字:一个 数组 我应该 | 更新日期: 2023-09-27 18:27:43

我有一个20乘10的数组,由双精度和短字符串组成(每个字符串少于15个字符)。此数组仅在调用函数时在函数内部使用。字符串是恒定的,只有双精度不同。

我应该将此数组保留为函数的本地数组吗?有什么我不知道的考虑吗?

我正在规划这个功能和阵列。数组可能有其他类型,很可能是一些枚举类型,所以我还没有任何具体的代码要显示。我所知道的只是阵列的大致大小和尺寸。

我应该在本地制作一个大数组吗

您不能简单地拥有数组的本地实例。

数组是引用类型,因此实际内存总是在堆上分配的。

所以:是的,如果你的(对一个)数组变量的引用符合它的用法,那么一定要保持它的本地性。确实如此:

此数组仅在函数内部使用

通常,从可读性/可理解性的角度来看,我会将数组设置为本地的,这样以后可能会来查看此代码的其他人就可以了解数组的用法和范围。如果您的后代能够通过检查判断出数组只能由其内部声明的一个函数使用,那么如果他们需要进行更改,他们就会知道更改的范围和他们必须进行的测试同样局限于使用该函数的代码路径。

不利的一面是,如果多次需要此阵列,并且其值不变,那么从性能的角度来看,扩大其范围是有意义的,从而延长其使用寿命,这样就不会不必要地创建和GCing此阵列。如果类将被实例化多次,但总是使用同一组值(或大多数值),则可以将其设置为静态。如果你这样做,我会记录它,说它只在一个函数中使用(不幸的是,在文档中的语句变为虚假后,文档可能会在很长一段时间内保持不变,但至少你在尽自己的职责通知未来的程序员)

这真的取决于你;我们无法从您的问题中判断出您在使用此代码时可能遇到了哪些问题,这些问题可能指示更改或不更改它。

我不会太担心事情,除非你非常担心内存使用(现在这不是什么大问题)。

当前本地变量在每次调用中都被实例化。

如果您将数组变量及其声明放在函数之外,则它不会以double的零值开始,并且您需要在使用它之前对其进行清理。

但在没有看到代码的情况下,我们无法建议您这是一个好的还是坏的举动,但这对您来说是有区别的。