10/02/06 13:54:41
お前らミス多すぎるだろ・・・俺もミスってた
a = a or xは優先順位の都合で
(a = a) or xとして結合するからxの代入が起きない
a = (a or x)
a = a || x
と書くのが正しい
なんにせよ初期化のイディオムとしては、||=を使うこと
(簡単な解説を兼ねてorを並べたのが失敗)
falseの扱いは>>259の言う通り根本的な問題だから触れなかったけど
必要なら時はa = a.nil? && xとかやって
まあfalseが入ってるかもしれない変数にこの手の初期化はあまり行わないから普段は問題ない