35
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-05-10

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

こんなやつ。

三項演算子
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文をスリムに書こう!

35
29
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?