变量名称:如何缩写“索引”?

时间:2013-04-01 20:55:51

标签: variables language-agnostic

我喜欢保持变量的名称简短但可读。

但是,例如,当在某些列表中命名保存元素索引的变量时,我倾向于使用elemIndex,因为我不知道缩写的正确(并且普遍理解)方式单词“index”。

是否有一种简明的方法来缩写“索引”?或者最好拼写它以避免误解?

2 个答案:

答案 0 :(得分:7)

根据我的经验,这取决于具体情况。通常情况下,我可以判断某些东西是否是它所用的索引,所以我通常更想知道它是什么索引。

我的经验法则大致如下:

如果它只是一个短循环中的循环索引(例如:所有一次都适合屏幕)并且上下文通知读者索引正在做什么,那么你可能会得到像{{1}这样简单的东西。 }。

示例:阈值图像

i

如果代码部分较大,或者您有多个indeces,请指明它是哪个列表的索引:

//For each pixel in the image, threshold it
for (int i = 0; i < height; i++ ) {
  for (int j = 0; j < width; j++) {
    if (image[i][j] < 128) {
      image[i][j] = 0;
    } else {
      image[i][j] = 255;
    }
  }
}

但是,如果索引实际上对代码的含义很重要,那么请完全指定它,例如:

File[] files_in_dir = ...;
int num_files = files_in_dir.length();
for (int fileIdx = 0; fileIdx < num_files; fileIdx++) { //for each file in dir.
  ...
}

然而,代码应被视为“一次写入,多次读取”,您的工作应该如此分配;即:写作很多,所以阅读很容易。为此,正如Brad M所提到的,从不认为读者理解你的缩写。如果您打算使用缩写,至少在评论中声明它们。

答案 1 :(得分:1)

坚持既定和众所周知的惯例。如果您使用通用约定,那么人们在阅读您的代码时会有更少的惊喜。

程序员习惯于使用许多数学惯例。例如。在数学中,我们通常标记指数:

i, j, k

虽然例如坐标用以下字母表示:

x, y, z

这当然取决于背景。例如。使用 i 来表示一些全局索引将是一个可怕的想法。对于非常局部变量使用短名称,对于更多全局函数和变量使用更长名称,这是一个很好的经验法则。

对我来说,这种风格受到了Rob Pike的影响,后者详细阐述了here。作为对用户界面设计和体验感兴趣的人,我也对此进行了更广泛的撰写。