2
2

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 3 years have passed since last update.

【rails】三項演算子

Last updated at Posted at 2020-10-13

三項演算子について学習したためアウトプットいたします。

この記事を読むと三項演算子の意味、使い方を理解できます。

#前提条件として
条件式を分岐させる「if, else」の使い方を知った上で記事を読むことをオススメします。
わからない方は検索してみてください。

#三項演算子とは?
三項演算子とは、条件を分岐させるをif, else, ~endを使わずに記述する方法です。

メリットとしては、コードの量を少なくしてすっきりさせることができます。

一方デメリットとしては、
・視覚的に見てわかりにくい。
・式が複雑化すると非常にわかりにくい。が挙げられます(あくまで個人的な感想です)

#三項演算子の使い方
【真偽値式】 ? 【真の場合に評価する式】 : 【偽の場合に評価する式】

これだけだと意味がわかりませんよね。例を出していきます。

<%= @group.name.blank? ? "このグループの名前はありません" : @group.name %>

【真偽値式】  
ここの部分は真偽を確かめる式を入れる場所です。
この場合は@groupにnameがついていないか?と検証しています

【真の場合に評価する式】
真偽値式の場所で定義した式が正しかった場合の式を書きます。
この場合は「@group.name.blank?」が正しい場合。つまりグループに名前がない場合どのようなことを表すかです。
今回は"このグループの名前はありません"と定義しています

【偽の場合に評価する式】
真偽値式の場所で定義した式が正しくなかった場合の式を書きます。
この場合は「@group.name.blank?」が正しくなかった場合。つまりグループに名前があった場合どのようなことを表すかです。
今回は@group.nameと定義しています

#if elseで表すとよりも遥かにコードが少ない
if~ elseを使っても同じことを表せます。

<% if @group.name.blank? %>
  <p>このグループの名前はありません<p>
<% else %>
  <p><%= @group.name %></p>
<% end %>

三項演算子が1行で済んだのに対し、こちらは4行かかってしまいます。
ここが大きな違いです。

ただ、個人的には、if~else~endの方が視覚的にコードが理解できるので私はこちらを使います。
(三項演算子はコードを見てじっくり考えないと気づかなかったです😅)

以上になります。

2
2
2

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?