何択?(26日目)
もうそろそろ1ヶ月たっちゃうね。
あっという間ですね!
今日は、チャットアプリケーションのメッセージ送信機能の実装を通して学んだことを紹介したいと思います。
☆今日の学び☆
条件式 ? trueの値 : falseの値
この記述でif文のような条件分岐がシンプルに記述できちゃうんですね。
例えば
if文で書くと
def show_last_message if (last_message = messages.last).present? if last_message.content? last_message.content else '画像が投稿されています' end else 'まだメッセージはありません。' end end
三項演算子で書き換えると↓
def show_last_message if (last_message = messages.last).present? last_message.content? ? last_message.content : '画像が投稿されています' else 'まだメッセージはありません。' end end
show_last_commentメソッドでは、メッセージが投稿されている場合、されていない場合で処理を分けています。
「if (last_comment = comments.last).present?」と記述することで、最新のメッセージを変数last_commentに代入しつつ、メッセージが投稿されているかどうかで場合分けを行なっています。
メッセージが投稿されている場合の内部で、さらに文章が投稿されている場合、画像が投稿されている場合で処理を分けています。
ちなみに三項演算子について色々調べてわかったことなんですが”条件分岐の一種”と言う感じで理解してたつもりなのですが、正確に言うと三項演算子は二択の選択肢でしか式を立てることができないので、二択選択式なら三項演算子(シンプルな記述で済むから)、三つ以上の分岐ではif文、といった感じで使い分けができるといいかもしれません。
今日はこの辺で!
おしまい