理解すべきことは二つ
三項演算子とRubyの||=というイディオムについてです
三項演算子とは
三項演算子は一行で表現するif構文のようなものです
まずは話を単純化するために下記の一行についてのみ考えます
ruby
1huga.nil? ? "hogehoge" : piyo
?
が二個あって混乱しそうですがhuga.nil?
で一つの式です
三項演算子自体は下記のような感じになります
ruby
1'条件' ? '条件がtrueの時の値' : '条件がfalseの時の値'
これはif構文に直すと下記と同じです
ruby
1if '条件'
2 '条件がtrueの時の値'
3else
4 '条件がfalseの時の値'
5end
Rubyの||=というイディオムの意味
そして ||=
ですが、これは
左辺が未定義または偽
の場合に右辺の値を代入する
という意味の式になります
ruby
1@hoge = nil
2@hoge ||= "hoge"
3# @hoge は "hoge"
4
5@fuga = "fuga"
6@fuga ||= "fugahoge"
7# @fuga は "fuga"
結論
ruby
1@hoge ||= huga.nil? ? "hogehoge" : piyo
上記は、
@hogeがtrueの場合何もしない、
@hogeが未定義または偽の場合、huga.nil? ? "hogehoge" : piyo
の結果を代入する
と、なります
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。