このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.2 リファレンスマニュアル

instance method Array#one?

one? -> bool[permalink][rdoc][edit]
one? {|obj| ... } -> bool
one?(pattern) -> bool

ブロックを指定しない場合は、 配列の要素のうちちょうど一つだけが真であれば、真を返します。そうでなければ偽を返します。

ブロックを指定した場合は、配列の要素をブロックで評価した結果、一つの要素だけが真であれば真を返します。そうでなければ偽を返します。

[PARAM] pattern:
ブロックの代わりに各要素に対して pattern === item を評価します。
p %w{ant bear cat}.one? {|word| word.length == 4} # => true
p %w{ant bear cat}.one? {|word| word.length > 4}  # => false
p %w{ant bear cat}.one?(/t/)                      # => false
p [ nil, true, 99 ].one?                          # => false
p [ nil, true, false ].one?                       # => true
p [ nil, true, 99 ].one?(Integer)                 # => true
p [].one?                                         # => false

[SEE_ALSO] Enumerable#one?