Rubyで条件を1つだけ満たすか判定する方法: `one?`の使い方

Ruby

Rubyで配列や列挙可能オブジェクトに対して、条件をちょうど1つだけ満たすかどうかを判定したい場合、`Enumerable#one?`メソッドを使うと便利です。この記事では、`one?`の基本的な使い方と実例を解説します。

`one?`メソッドの基本

`one?`はブロックを受け取り、そのブロックがtrueを返す要素がちょうど1つの場合にtrueを返します。それ以外の場合はfalseを返します。

構文例:

array.one? { |element| 条件 }

具体例

例1: 配列の中に1つだけ偶数があるか確認する

numbers = [1, 3, 4, 7]
numbers.one? { |n| n.even? }  #=> true

例2: 条件を満たす要素が複数ある場合

numbers = [2, 4, 6]
numbers.one? { |n| n.even? }  #=> false

例3: 条件を満たす要素がない場合

numbers = [1, 3, 5]
numbers.one? { |n| n.even? }  #=> false

ブロックなしでの使用

ブロックを渡さずに使う場合は、truthyな要素がちょうど1つあるかどうかを判定します。

arr = [nil, false, 1]
arr.one?  #=> true

まとめ

Rubyの`one?`メソッドを使えば、配列やEnumerableの中で条件をちょうど1つだけ満たす要素があるかを簡単に判定できます。ブロックを渡す方法とブロックなしの方法を状況に応じて使い分けましょう。

コメント

タイトルとURLをコピーしました