#概要
初学者にとって難しいのは知らないメソッド、記法が出てきたときだと思います。
筆者も教材をやっているときに出くわしそこでエラーがでるとひえーっとなってしまいます。
#メソッド内のに:と?が記載されていて
さて、今回でくわした記法は ?: です。下記のような感じです。
def hoge
hoge = params[:hoge].present? ? params[:hoge] : ""
end
こんな感じですよね。
え、わたし:(コロン)てシンボルとかハッシュにしか使ったことないよ?これハッシュ関係ある?となりあたふた。
でもメソッド内のに:と?が記載されていて明らかに何か意味してるよね、と...。
#条件演算子
調べたところ、
「条件演算子(三項演算子とも)」だそうです。え、そうなの?笑
三項演算子知っているしそうなら解読すごく簡単じゃん!拍子抜けです。
というか条件分岐はif文でなんとかなると思ってました。
##使い方
式1? 式2 : 式3
「式1の結果次第で式2か3を返す」という意味なんですね!!
if文でいうなら
if 式1 then 式2 else 式3 end
と同じです。if文だと行が増えるので可視性を高めるためにも使われているのかなと納得しています。
なので上記のコードをif文に落とし込むとこんな感じです。
def hoge
if hoge.present?
hoge = params[:hoge]
else
hoge = ""
end
end
間違いがあればご指摘いただけますと幸いです。以上!
#参考文献
https://www.javadrive.jp/ruby/if/index10.html
https://docs.ruby-lang.org/ja/latest/doc/symref.html
今回の出来事は調べるときどうググったらいいのかわからないパターンでした。
"rails :" "rails コロン" "rails : ?" とか調べましたが引っかかるのはハッシュ関連が多かったですね。
結局"rails コロン メソッド"で検索かけらうまいこと見つかりました!