33

重複の可能性:
Ruby の配列に値が存在するかどうかを確認する

文字列の配列をループし、文字列に文字列 'dog' が含まれている場合に true を返すこのメソッドがあります。動作していますが、複数の return ステートメントが乱雑に見えます。これを行うより雄弁な方法はありますか?

def has_dog?(acct)
  [acct.title, acct.description, acct.tag].each do |text|
    return true if text.include?("dog")
  end
  return false
end
4

1 に答える 1

59

Enumerable#anyを使用しますか?

def has_dog?(acct)
  [acct.title, acct.description, acct.tag].any? { |text| text.include? "dog" }
end

true/を返しfalseます。

于 2012-10-10T20:10:21.673 に答える