我喜欢保持变量的名称简短但易读。
尽管如此,例如,当命名保存某个列表中元素索引的变量时,我倾向于使用elemIndex
,因为我不知道缩写“索引”这个词的正确(和普遍理解的)方式。
是否有缩写“索引”的规范方式?还是最好把它完整拼写以避免误解?
我喜欢保持变量的名称简短但易读。
尽管如此,例如,当命名保存某个列表中元素索引的变量时,我倾向于使用elemIndex
,因为我不知道缩写“索引”这个词的正确(和普遍理解的)方式。
是否有缩写“索引”的规范方式?还是最好把它完整拼写以避免误解?
根据我的经验,这取决于上下文。通常我可以从它的用途来判断某物是否是索引,所以我通常更感兴趣的是知道它是什么的索引。
我的经验法则大致是这样的:
如果它只是一个短循环中的循环索引(例如:所有内容同时显示在屏幕上)并且上下文告诉读者索引在做什么,那么您可能可以使用简单的i
.
示例:对图像进行阈值处理
//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.
...
}
但是,如果索引实际上对代码的含义很重要,则完全指定它,例如:
int imageToDeleteIdx = 3; //index of the image to be deleted.
image_list.delete(imageToDeleteIdx);
然而,代码应该被认为是“一次编写,多次阅读”,你的努力应该被这样分配;即:写作很多,所以阅读很容易。为此,正如 Brad M 所提到的,永远不要假设读者理解你的缩写。如果您要使用缩写,至少在评论中声明它们。
坚持既定的和众所周知的惯例。如果你使用通用的约定,人们在阅读你的代码时就会有更少的惊喜。
程序员习惯于使用许多数学惯例。例如在数学中,我们通常标记索引:
i, j, k
例如,坐标用字母表示,例如:
x, y, z
这当然取决于上下文。例如,使用i来表示某个全局索引将是一个糟糕的主意。为非常局部的变量使用短名称,为更多的全局函数和变量使用较长的名称,这是一个很好的经验法则。
对我来说,这种风格受到了 Rob Pike 的影响,他在这里详细阐述了这一点。作为对用户界面设计和体验感兴趣的人,我也写过更多关于此的文章。