技術ネタを書けるような人間になりたいという心情を詠んだ句

いまさら気づいたこんなこと

普段の作業では、文章中の単語の出現回数とか数えることがよくあるのですよ。ボク。

Hashを使って、単語がキーで回数が値とかやるわけですが、初出現の単語がくるとhash[key]はnilと評価されて足し算がmethod_missingとなるので

if count[w].nil?
  count[w] = 1
else
  count[w] += 1
end

とか

count[w] = count[w].nil? ? 1 : count[w]+1

とかやってたんですよ。

もっとスマートに書けないかなーと思っていたら、むっさ簡単に書けるじゃないかコンチクショー(# ゜Д゜)ー!

count[w] = (count[w] || 0) + 1

count[w] = (count[w] or 0) + 1

なぜ今まで思いつかなかったのか…

2012/11/14 追記
こういう書き方はnilガードって言うらしいです。