为什么使用变量名称"temp"被认为是一种不好的做法?

Nam*_*nha 9 language-agnostic

每当我提出一个代码供专业程序员审查时,他们倾向于指出"使用名为temp的变量是坏的",但似乎没有人知道原因.

为什么它被认为是坏的?

Edw*_*ard 8

这是因为temp对变量的长寿(临时)提出了一些建议,但没有提及其内容的含义或意义.变量通常最佳命名,以反映其底层值的意图.

  • 它是****,而不是**如何使用**. (4认同)

小智 7

temp确实没有任何意义.一个更好的问题是:它必须吗?

在不知道上下文(如何在代码中使用?)的情况下,很难说它是什么,以及它是否temp是一个好名字.如果您经常或非本地使用变量,则名称必须是描述性的.temp如果你在三条相邻的线条中使用三次,那么这个名字就可以了.

void swapIntPointers(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}
Run Code Online (Sandbox Code Playgroud)

很明显这个函数应该做什么(从它的名字)它实际做什么(从它的结构).在这个特定的情况下,我强烈喜欢短(并自动无名)名称.我甚至说这temp可能有点太长了;)

然而:

  • 如果你经常使用变量,它显然很重要,并且"值得"一个更好的名字.
  • 如果在函数中相隔很远的地方(非本地)使用相同的变量,它可以帮助程序员在给它一个可识​​别的名称时"记住"它的含义.