これ。

a ||= {}

「a が nil か false なら a に {} を代入する」の意となるっていうのを知った。

rails のソースでよく使われてて「ふーん」くらいに思ってたけど、この演算子のおかげで nil 判定または例外処理で Hash の key があるかどうか的な処理がすべていらなくなる。

たとえば Hash の値が Hash で、その Hash の値が配列の場合とかちょくちょく出てくるけど、こんな風にかけてしまう。

a ||= {}
a[:k] ||= {}
a[:k][:k2] << obj

すっきりしすぎ。スバラシス。