language-agnostic - 为什么使用变量名 "temp"被认为是不好的做法?

标签 language-agnostic

每当我提出一个代码供专业程序员审查时,他们往往会指出“使用名为temp的变量是不好的”,但似乎没人知道为什么。

为什么认为它不好?

最佳答案

temp确实并不意味着任何有用的东西。一个更好的问题是:一定要这样做吗?

在不了解上下文(代码中如何使用上下文)的情况下,很难说出它的用途以及temp是否是一个好名字。 如果您经常或不在本地使用变量,则该名称必须是描述性的。 如果使用temp之类的名称,例如在相邻的三行中使用三次,则可以。

void swapIntPointers(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

显而易见,此函数应该做什么(根据其名称)以及它实际做什么(根据其结构)。在这种特定情况下,我强烈希望使用简短的名称(并自动使用非描述性名称)。我什至会说temp在这里可能太长了;)

然而:
  • 如果您经常使用该变量,那么它显然很重要,并且“应有”一个更好的名称。
  • 如果在函数中相距较远的位置(非本地)使用相同的变量,则当您给它赋予可识别的名称时,它可以帮助程序员“记住”含义。
  • 关于language-agnostic - 为什么使用变量名 "temp"被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850123/

    相关文章:

    language-agnostic - 您如何得知用户最后一次按下键(或移动鼠标)的时间?

    language-agnostic - 对于所有网页设计师 : Academic learning vs self taught learning

    unit-testing - 你会把这个(来自书 "Code Complete")称为单元测试、集成测试或其他什么吗?

    .net - 类型类有什么问题?

    language-agnostic - 现实世界中用于混淆的用途

    language-agnostic - 有什么理由对空指针使用十六进制表示法?

    algorithm - 如何在 O(nloglogn) 时间复杂度内对 range[1, logn**logn] 中的 n 个元素进行排序?

    arrays - 什么是 "value"数组?

    algorithm - 如何用常数值填充二维数组,效率比 n^2 更高?

    language-agnostic - 使用 Decimal 与 double 的应用程序。 .