これ。
「a が nil か false なら a に {} を代入する」の意となるっていうのを知った。
rails のソースでよく使われてて「ふーん」くらいに思ってたけど、この演算子のおかげで nil 判定または例外処理で Hash の key があるかどうか的な処理がすべていらなくなる。
たとえば Hash の値が Hash で、その Hash の値が配列の場合とかちょくちょく出てくるけど、こんな風にかけてしまう。
a ||= {}
a[:k] ||= {}
a[:k][:k2] << obj
すっきりしすぎ。スバラシス。