Rubyリファレンス: Home

one? (Enumerable)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Enumerable > one?

enum.one? {|item| block }

one?メソッドは、ブロック引数itemに要素を入れながら、要素の数だけブロックを繰り返し実行します。ブロックの戻り値が1つだけ真だった場合にtrueを返し、真が2つ以上かすべて偽である場合にfalseを返します。

次の例は、配列の要素に8文字を超える文字列が1つあるかどうかを調べます。

words1 = ["dog", "cat", "hippopotamus", "orangutan"]
puts words1.one? {|w| w.size > 8 }
 
words2 = ["dog", "cat", "hippopotamus", "whale"]
puts words2.one? {|w| w.size > 8 }
false
true

ブロックを省略したときは、要素の中に1つだけ真があるときにtrueを、真が2つ以上かすべて偽である場合にfalseを返します。

words = [nil, "cat", false]
puts words.one?
true

関連項目