我喜欢保持变量的名称简短但可读。
但是,例如,当在某些列表中命名保存元素索引的变量时,我倾向于使用elemIndex
,因为我不知道缩写的正确(并且普遍理解)方式单词“index”。
是否有一种简明的方法来缩写“索引”?或者最好拼写它以避免误解?
答案 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。作为对用户界面设计和体验感兴趣的人,我也对此进行了更广泛的撰写。