Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumerableモジュール > one?

instance method Enumerable#one?

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

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

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

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