ruby ||= の意味

自分の備忘録も兼ねて書きます。

railsではよく||=をよく見かけます。

訳すと、「あるいはか、代入する」という意味です。

自分はこれを理解するのに大分時間がかかりました。

何回見ても直感的に分からなかったです。

railstutorialにも概要が載っているので、気になる人は一度見てください。

railstutorial.jp

では、説明していきます。

x = 0
x = x + 1

これはプログラミングの参考書ではよく見かけます。

右辺を左辺に代入します。

これを省略すると、自己代入という形で書けます

x += 1 → x = x + 1 と同義

では、次に||で同じことをやってみます。

x = 0
x = 0 || 1

これはx = 0でない場合、1を代入するという式です。

これを自己代入と同じ形で表現します。

x ||= 0

これはx = 0でなければ、x = 0 を代入するという式になります。

railsで使われる場合

@user ||= current_user

@userがcurrent_userでなければ、current_userを代入するという式になります。

式の意味が理解できれば、バンバン使っていけそうな感じがします。