当前位置:  开发笔记 > 程序员 > 正文

名为i的变量是不可接受的吗?

如何解决《名为i的变量是不可接受的吗?》经验,为你挑选了4个好方法。

就变量命名约定而言,是应该命名迭代器i还是更像语义的东西count?如果你不使用i,为什么不呢?如果您认为这i是可以接受的,是否存在不应该使用迭代的情况?



1> Josh..:

取决于我想的背景.如果你在某个集合中循环遍历一组对象,那么从上下文中你应该做的事情应该是相当明显的.

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;
    }
} 


currentRow和currentCol可以很容易地被称为row和col.

2> Andy Lester..:

"i" 表示程序员的"循环计数器".这没什么不对.



3> Ian P..:

这是另一个完全没问题的例子:

foreach (Product p in ProductList)
{
    // Do something with p
}


绝对.没有人会抱怨读取"考虑连续函数f"的数学证明是不可理解的,因为函数被称为"f"而不是"a_continuous_function".

4> paxdiablo..:

我倾向于使用i,j,k进行非常局部化的循环(仅在源线数量方面存在很短的时间).对于存在于较大源区域的变量,我倾向于使用更详细的名称,因此我可以在不回溯代码的情况下查看它们的用途.

顺便说一下,我认为这些命名约定来自早期的Fortran语言,我是第一个整数变量(A - H是浮点数)?

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有