Effective Java之将局部变量的作用域最小化(四十五)

这条规则应该是我们平常容易遵守的规则。

我们很少会把所有的局部变量在程序的开始就声明出来,大部分人还是习惯在第一次使用它的地方声明。原因很简单,写起来容易,别人读起来也好读。

对于平时写代码写的多的人来说,对于局部变量的初始化应该是司空见惯了,可以发现几乎每个局部变量的声明都包含一个初始化表达式,除非try-catch语句块。

在这里,书中特意强调了循环的例子:

for循环优于while循环
 for (Element e : c) {
       doSomething(e);
   }

 for (Interator i = c.iterator(); i.hasNext();) {
       doSomething((Element)i.next());
   }


    Interator i1 = c.iterator();
   while (i1.hasNext()) {
       doSomething((Element)i1.next());
   }

   Interator i2 = c2.iterator();
   while (i1.hasNext()) {    
       //bug,i2 not i1
       doSomething((Element)i2.next());
   }

很容易看出来,for语句把变量的作用的使用范围限制在循环中,所以不会影响循环以外的程序,也不会被影响。而while会把变量暴露出来,容易出现“剪切-粘贴”之类的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值