24ブロ

私が未経験からプログラミングを学んだ物語

何択?(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文、といった感じで使い分けができるといいかもしれません。

今日はこの辺で!

おしまい