就变量命名约定而言,迭代器应该命名为i
还是更具语义的名称,比如count
?如果你不使用i
,为什么不呢?如果您觉得i
是可以接受的,那么是否存在不应该使用它的迭代情况?
发布于 2008-09-25 00:32:28
我想这要看上下文了。如果你正在循环通过某个集合中的一组对象,那么从上下文中你所做的事情应该是相当明显的。
for(int i = 0; i < 10; i++)
{
// i is well known here to be the index
objectCollection[i].SomeProperty = someValue;
}
但是,如果不能立即从上下文中清楚您在做什么,或者如果您正在对索引进行修改,您应该使用更能指示用法的变量名。
for(int currentRow = 0; currentRow < numRows; currentRow++)
{
for(int currentCol = 0; currentCol < numCols; currentCol++)
{
someTable[currentRow][currentCol] = someValue;
}
}
发布于 2008-09-25 00:31:33
这是另一个完全没问题的例子:
foreach (Product p in ProductList)
{
// Do something with p
}
发布于 2008-09-25 00:31:30
我倾向于使用i,j,k来表示非常局部化的循环(仅在源代码行的数量方面存在一小段时间)。对于存在于较大源代码区域的变量,我倾向于使用更详细的名称,这样我就可以了解它们的用途,而不需要重新搜索代码。
顺便说一下,我认为这些变量的命名约定来自早期的Fortran语言,当时我是第一个整数变量(A -H是浮点数)?
https://stackoverflow.com/questions/130775
复制相似问题