Effective Java 第8章 プログラミング一般 (45, 46)
Effective Java 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/11/27
- メディア: 単行本(ソフトカバー)
- 購入: 77人 クリック: 936回
- この商品を含むブログ (264件) を見る
2章から読み始めようと思ったけれど、レベル毎に進んでいくという感じではなくて、種類で分けられているので、最初に読み始めるのは「プログラミング一般」の8章から。
項目45
ローカル変数のスコープは最小限に、という項目。簡単じゃん、と思ったら実はイテレータだけ出来てなかった。
Iterator i = a.iterator(); while (i.hasNext()) { ... i.next(); ... }
こういう書き方よりも、
for (Iteartor i = a.iterator(); i.hasNext();) { ... i.next(); ... }
この方がスコープが狭いでしょ?とのこと。確かにー。今まで上の書き方だったなー。
でもまあ、これは1.5より前のコードの場合で、1.5以降なら拡張for文使いましょうとのこと。
項目46
でもやっぱり拡張for文が使えるなら使いましょう、という項目。
for (String str1 : strList1) { for (String str2 : strList2) { println(str1 + " : " + str2) } }
と同じ感じで
for (Iterator i1 = a1.iterator(); i1.hasNext(); ) { for (Iterator i2 = a2.iterator(); i2.hasNext(); ) { println((String)i1.next() + " : " + (String)i2.next()); } }
と書くと結果が変わるので気をつけましょう、とのこと。確かに、もしかすると間違える気がしないでも無い……
while文でのイテレータ < for文でのイテレータ < 拡張for文でのイテレータ
出来るならこんな感じに。まあ、拡張for文使えれば必ずそれ使うだろうし。
項目45を読んだからにはwhile文でのイテレータはもう書かないだろうし。
今回はここで終わり。Tips集みたいな感じで読んでて面白い本だなー。