Edited at

【Ruby・Rails】三項演算子アレルギーが1分で解消した。+便利な使い方

More than 1 year has passed since last update.


三項演算子という言葉にアレルギーがあったがそんな難しい話ではなかった

こんなやつ。


三項演算子

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


参考

感謝します!!

【Ruby・Rails】三項演算子(条件演算子)を使ってif文をスリムに書こう!