Rubyの使い方Any、All、None&One
今日は、要素の配列、ハッシュ、またはEnumerableモジュールを含むその他のオブジェクトに対して条件ステートメントをチェックするのに役立つ4つのEnumerableメソッドについて学習します。
これらの4つのメソッドは、true
のいずれかを返します またはfalse
。
コンテンツ
- 1RubyAllメソッド
- 2つのすべての配列と空の配列
- 3Rubyなしメソッド
- 4 Ruby Any Method
- 5RubyOneメソッド
- 6つの新しいRuby2.5機能
- 7まとめ
- 7.1関連
やってみましょう!
ルビーオールメソッド
配列内のすべての文字列が特定のサイズであるかどうかを確認する場合。
これを行うことができます :
def all_words_have_specific_size?(words) return false if words.empty? words.each do |str| return false unless str.size == 5 end true end words = ["bacon", "orange", "apple"] all_words_have_specific_size?(words) # falseでない限り、falseを返します。
すべての文字列をチェックします。サイズが希望どおりでない場合は、false
を返します。 それ以外の場合は、true
を返します 最後に。
これは、このようなものの多くのコードです。
これを毎回設定する必要があると想像してみてください この種のチェックを行いたいのです。
大変な作業です!
ここで気にするのはこれだけです:
str.size == 5
これが確認している状態です 。
これを行うためのより良い方法はありますか?
はい!
all?
を使用します あなたのためにすべての大変な仕事をする方法。
方法は次のとおりです :
strings.all? { |str| str.size == 5 }
それだけです。
すべてのアレイと空のアレイ
知っておくべきことの1つ:
このall?
メソッドはtrue
を返します 空の配列で呼び出す場合。
例 :
[].all? { |s| s.size == 1 } # true
説明 :
false
の要素はないため その場合、すべての要素はtrue
である必要があります 。
これがこの背後にある論理です。
ルビーなしメソッド
all?
の逆が必要な場合 、none?
を使用します
ここに例があります :
strings.none? { |str| str.size == 5 }
これはtrue
を返します どの文字列も条件に一致しない場合、またはfalse
1つ以上が一致する場合。
ifステートメントがない限りのようです。
Ruby任意の方法
いずれかの要素が条件に一致するかどうかを知りたいですか?
any?
を使用できます メソッド!
このように :
[1,2,3,4,5].any? # true
この特定の例では、any?
empty?
の逆のように機能します 。しかし、それがすべての状況で機能するとは限りません。
これは質問をしているからです :
「この配列内にTRUTHY要素はありますか?」
配列に真実でないもののみが含まれている場合(nil
/ false
)false
を取得する値 、しかし、配列は実際には空ではありません。
例 :
[nil].any? # false
このメソッドにブロックを渡すこともできます:
[1,2,3].any? { |n| n > 0 } # true
これにより、n > 0
かどうかがチェックされます true
です 少なくとも1つの要素の場合。
ルビーワンメソッド
正確に1つの要素がtrue
を返すかどうかを確認できます one?
で メソッド。
ここに例があります :
["a", 1, {}].one? { |obj| obj.kind_of?(Hash) } # true
これをブロックなしで使用して、配列に1つの真の値(false
以外のもの)が含まれているかどうかを確認できます。 / nil
。
["a"].one? # true [].one? # false [nil].one? # false
size == 1
に固執します より明確だからですone?
に慣れていなくても、誰もが理解するでしょう。 方法、これはそれほど一般的ではありません。
新しいRuby2.5機能
Ruby 2.5以降、これら4つのメソッド(any?
/ all?
/ none?
/ one?
)また、grepの引数のように機能する引数を取ります。
これが私の意味です :
[:orange, :apple, :coconut].any?(Symbol) # true [1,2,3].all?(1..10) # true
これは、クラス、正規表現、または範囲を確認する場合のちょっとしたショートカットです。
概要
あなたはあなたに多くの仕事を節約することができる4つの素晴らしいRubyメソッドについて学びました!これらのメソッドは、true
のいずれかのみを返します またはfalse
。
これらの方法をこれまで使用したことがない場合は、今すぐ試してみませんか?
この記事が役に立ったら、共有してください。
-
Ruby Mapメソッドの使用方法(例付き)
Mapは、配列、ハッシュ、範囲で使用できるRubyメソッドです。 マップの主な用途は、データを変換することです。 例 : 文字列の配列が与えられた場合、すべての文字列に目を通し、すべての文字を大文字にすることができます。 または、Userのリストがある場合 オブジェクト… 変換できます 対応するメールアドレス、電話番号、またはその他の属性のリストにそれらを追加します Userで定義 クラス。 これを行う方法を正確に見てみましょう! ルビーマップ構文 マップの構文は次のようになります: array = [a, b, c] array.map { |string| string.
-
RubyでStructとOpenStructを使用する方法
Rubyの構造体とは何ですか? 構造体は組み込みのRubyクラスであり、値オブジェクトを生成する新しいクラスを作成するために使用されます。値オブジェクトは、関連する属性を一緒に格納するために使用されます。 ここに例があります : Point 2つの座標(x &y 。 このデータはさまざまな方法で表すことができます。 いいね : 配列[10, 20] ハッシュ{ x: 10, y: 10 } オブジェクトPoint.new(10, 20) 複数のPointを使用する場合 、オブジェクトアプローチを使用することをお勧めします。 しかし… これら2つの値を一緒に格納するた