scripting - 任何语言 : recycling Variables

标签 scripting variables benchmarking recycle

这似乎是一个简单的问题,但是,在任何脚本语言中重复使用变量通常是个好主意吗?

我对为什么它是/不是好的做法特别感兴趣,因为如果我应该或不应该这样做,我除了自己之外。

例如,$i 是循环中用于遍历事物的最常用变量之一。

例如(在 php 中):

//This script will iterate each entry in $array 
//and output it with a comma if it isn't the last item.

$i=0;    //Recycling $i

foreach ($array as $v) {
    $i++;

    if ($i<count($array))
    {
        echo $v.', ';
    }
    else {
        echo $v;
    }
}

假设我的脚本中有几个循环,重新使用 $i 还是只使用另一个变量(例如 $a 和任何其他变量会更好?循环从 $b$z

显然要重新使用 $i,我必须在循环之前设置 $i=0;null,或者否则它会在稍后的脚本中给出一些非常奇怪的行为。这让我想知道重用它是否值得麻烦......

下面的变量会比使用另一个变量占用更多的空间吗?

$i=0;    //Recycling $i

当然这是最简单的使用示例,我想知道如果脚本复杂得可怕,它会不会造成更多的麻烦?

我知道重新使用一个变量可以节省极少的内存,但是当这些变量堆积起来时,它就变得很重要,不是吗?

提前感谢您的直接回答,如果这个问题太模糊,我深表歉意,也想知道这一点 - 这样我就知道我应该在其他地方提出此类问题。

最佳答案

我认为您将“字符串”与“变量”混淆了。字符串是 ASCII 或 Unicode 字符的集合,具体取决于编程语言。变量是内存中的命名位置。所以你说的是回收一个变量,而不是一个字符串。

不幸的是,变量的处理方式是高度特定于语言和编译器的。如果您向我们提供更多详细信息,您将获得更好的信息。

大多数语言都有作用域的概念,变量空间在声明时分配,在作用域结束时释放。如果将变量保留在其适当的范围内,就不必担心浪费内存,因为变量将在不再需要时被释放。同样,范围的细节取决于语言。

通常,重用这样的变量名是个坏主意,因为当(不是如果)您忘记将变量重置为同一范围内的某个初始值时,您的程序将在运行时中断。

关于scripting - 任何语言 : recycling Variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187774/

相关文章:

bash - 如何编写过滤行并计算它们的 shell 脚本?

c++ - 如何在持续集成中包含 google benchmark

linux - 通过 ssh 登录且用户是 sudo 用户时无法访问 authorized_keys

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - 如果 b = a,为什么在下一行重新定义 a 后 b 会发生变化?

javascript - Javascript 函数外部的常量变量

java - 如何针对 vanilla 基准调整 Java GC?

Java并发查询

java - 使用带有 JavaScript 和/或 Lua 的 Java 脚本 API

regex - Grep 在包含 n 个文件的文件夹中查找多个模式。如果找到模式的匹配项,则创建 mkdir