Ruby 1個の変数に複数ある「or」をまとめて記述する

  • 作成日 2021.04.05
  • 更新日 2022.08.09
  • Ruby
Ruby 1個の変数に複数ある「or」をまとめて記述する

Rubyで1個の変数に複数ある「or」をまとめて記述するまでの手順を記述してます。Rubyのバージョンは3.0.0となります。

環境

  • OS CentOS 7.9.2009 (Core)
  • Ruby 3.0.0

まとめて記述

「or」を使用した、以下のようなif文だと変数「hoge」を3度記述する必要があり、また、条件を追加する場合も、どんどん見にくくなります。

hoge = "val1"

if hoge == "val1" || hoge == "val2" || hoge == "val3"
  p "true"
else
  p "false"
end

rubyの場合、「.in?」を使用すると、変数「hoge」に対して、まとめて条件を記述することが可能です。

hoge = "val1"

if ["val1", "val2", "val3"].include?(hoge)
  p "true"
else
  p "false"
end

また、active_supportの「.in?」を使用してまとめることも可能です。

require "active_support/all"

hoge = "val1"

if hoge.in?(["val1", "val2", "val3"])
  p "true"
else
  p "false"
end

三項演算子使用

三項演算子を使用すると、1行にまとめることができます。

["val1", "val2", "val3"].include?(hoge) ? (p "true") : (p "false")