Ruby Grepメソッドの使用方法(例付き)
grep
について話しましょう メソッド。
この方法で何ができますか?
Grepを使用して、配列や範囲などの列挙可能なオブジェクトをフィルタリングできます。
「しかし、selectはすでにそれを行っています!」
はい。ただし、grepの動作は異なり、結果も異なります。
いくつかの例を見てみましょう。
RubyGrepメソッドの例
この配列が与えられた場合:
objects = ["a", "b", "c", 1, 2, 3, nil]
grepを使用して文字列のみを取得できます :
objects.grep(String) # ["a", "b", "c"]
整数のみ:
objects.grep(Integer) # [1, 2, 3]
またはゼロでないものすべて :
objects.grep_v(NilClass) # ["a", "b", "c", 1, 2, 3]
単語の配列がある場合:
fruit = ["apple", "orange", "banana"]
「a」で始まるすべての単語を見つけることができます:
fruit.grep(/^a/) # ["apple"]
または「e」で終わる :
fruit.grep(/e$/) # ["apple", "orange"]
そして、あなたが数字のリストを持っているなら:
numbers = [9, 10, 11, 20]
範囲内のすべての番号のリストを取得できます :
numbers.grep(5..10) # [9, 10]
ブロックを使用する場合は、マップ方法を組み合わせて1つに選択できます:
numbers.grep(5..10) { |n| n * 2 } # [18, 20]
空想したい場合は…
times_two = ->(x) { x * 2 } numbers.grep(5..10, ×_two) # [18, 20]
かなりかっこいいですよね?
GrepとSelect:違いを理解する
grepはどのように機能しますか?
秘訣は===
を使うことです Rubyのメソッド(トリプルイコール)。
Grepは、渡された引数に対してこのメソッドを呼び出します。
そして、クラス、正規表現、範囲はすべて===
を実装していることがわかります。 。
クラスにとって意味のある方法でこのメソッドを実装します。
例 :
- クラス(
Integer
など) またはArray
)、指定されたオブジェクトクラスと比較します。 - 範囲は、番号が範囲に含まれているかどうかを確認します。
- 正規表現は一致するかどうかをチェックします。
あなたが言うとき :
objects.grep(Integer)
あなたが本当に言っているのは :
objects.select { |obj| Integer === obj }
長い間、grepについて混乱していました…
私がこれを理解するまで。
select
メソッドは、ブロックの結果に基づいてリストをフィルタリングします。
ブロックがtrueと評価された場合、その要素が選択されます。
しかし、grep
===
を使用して2つのことを比較するだけです 。
grepはselectのより特殊なバージョンであると言えます。 !
RubyGrepマインドマップ
ビデオチュートリアルを見る
概要
Rubyのgrepメソッドについて学びました!それがどのように機能するかを理解するとき、それは非常に役立つ方法です。
これを沈めるように練習してください。
練習は習得の鍵です!
-
Ruby Mapメソッドの使用方法(例付き)
Mapは、配列、ハッシュ、範囲で使用できるRubyメソッドです。 マップの主な用途は、データを変換することです。 例 : 文字列の配列が与えられた場合、すべての文字列に目を通し、すべての文字を大文字にすることができます。 または、Userのリストがある場合 オブジェクト… 変換できます 対応するメールアドレス、電話番号、またはその他の属性のリストにそれらを追加します Userで定義 クラス。 これを行う方法を正確に見てみましょう! ルビーマップ構文 マップの構文は次のようになります: array = [a, b, c] array.map { |string| string.
-
Linuxでwatchコマンドを使用する方法と例
Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時