#三項演算子という言葉にアレルギーがあったがそんな難しい話ではなかった
こんなやつ。
三項演算子
params[:remember_me] == '1' ? remember(user) : forget(user)
三項演算子の中で何が起きているか
これって、
三項演算子じゃなく書いた場合
if 条件
結果1
else
結果2
end
というのを以下のように書いただけ。
三項演算子
条件 ? 結果1 : 結果2
つまり
params[:remember_me] == '1' ? remember(user) : forget(user)
#コメントで教えてもらったのですが、カッコをつけたら見やすいです。
(params[:remember_me] == '1') ? (remember(user)) : (forget(user))
#↑↑↑この上下が全く同じ。↓↓↓
if params[:remember_me] == '1'
remember(user)
else
forget(user)
end
便利な使い方
###①値を代入する時に、三項演算子を使う。
if boolean?
var = '値1'
else
var = '値2'
end
三項演算子を使うと、上のコードは以下のようになる。
var = boolean? ? '値1' : '値2'
###②三項演算子をメソッドの戻り値にする。
def foo
do_stuff
boolean? ? "値1" : "値2"
end