関数から先に return false; で返してしまうっていうのは前から好きだった。次のようなコードだ。
public boolean Contains((String str, String substr) { if (str == null || substr == null) return false; if (substr.equals("")) return true; }
こういうのを「ガード節」というらしいということは本書で知った。
そしてこのガード節をイテレータの中でどう実現するか。うーむ。パッとは思い浮かばない。次のようになる。
for (int i = 0; i < results.size(); i++) { if (results[i] == NULL) continue; non_null_count++; if (results[i]->name == "") continue; # Write some processes }
なるほどー continue か。それほど使われているのを見ないし、自分もあまり使わないが、これは使ってみてもいいかもしれないと思える書き方だ。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
まとめ
『リーダブルコード』なら『コードコンプリート』より手軽に読めると言われて読み始めたが、確かに手軽だった。そう感じたのには、ページ数自体が少ないということもあるが、内容も「コーディングあるある」を扱っているのでなんだか読み物として楽しめる感じもあったのも大きいと思う。