Help us understand the problem. What is going on with this article?

【Ruby】全ての要素に一致しなかった場合の処理

More than 3 years have passed since last update.

if や unless で配列の要素を判定している時に困ったことがありました。each しか知らない自分は、条件をすべて満たさない場合の書き方が分からなかったのです。調べてみて分かった、一つのやり方の例をここに書いておきます。

class Cars
  # デフォルトでは Ruby
  def initialize (yourCar = "Ruby")
    @car = yourCar
  end

  # SUBARUによる製造かをたずねるメソッド
  def subaru?
    # 配列の作成
    subaru = [ "Impreza", "BRZ", "WRX", "Legacy", "Levorg", "Forester" ]
    # unless 文
    # .select によって比較する
    # .empty? が返ってきた配列の中身を確認する
    # 空ではなかった時に false を返す
    unless subaru.select do |model| model == @car end.empty? then
      # マッチしたとき実行
      puts "#{@car} is made by SUBARU !"
    else
      # マッチしなかったとき実行
      puts "No! #{@car} is not made by SUBARU :("
    end
  end
end

car1 = Cars.new("GT-R")
car2 = Cars.new("WRX")
car1.subaru?
car2.subaru?

よくない書き方や、他にも何かいいやり方がありましたら、コメントをお願いします。

viola
最近はROM専です。 投稿から1年以上経っている記事を参考する際は注意してください。場合によっては古すぎます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away