首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >名为i的变量不可接受吗?

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

Stack Overflow用户
提问于 2008-09-25 00:24:44
回答 16查看 1.3K关注 0票数 16

就变量命名约定而言,迭代器应该命名为i还是更具语义的名称,比如count?如果你不使用i,为什么不呢?如果您觉得i是可以接受的,那么是否存在不应该使用它的迭代情况?

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 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;
    }
} 
票数 35
EN

Stack Overflow用户

发布于 2008-09-25 00:31:33

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

foreach (Product p in ProductList)
{
    // Do something with p
}
票数 6
EN

Stack Overflow用户

发布于 2008-09-25 00:31:30

我倾向于使用i,j,k来表示非常局部化的循环(仅在源代码行的数量方面存在一小段时间)。对于存在于较大源代码区域的变量,我倾向于使用更详细的名称,这样我就可以了解它们的用途,而不需要重新搜索代码。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/130775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档