Posts slice - HashのActiveSupport 拡張
Post
Cancel

slice - HashのActiveSupport 拡張

今回のRails tipsは slice です。これは、HashクラスのActiveSupport拡張の一つです。

メソッド slice の機能

ハッシュに含まれるキー(とその値の組)のうち、特定のキー名のハッシュを取り出します。

例:

current_hash = {"right_key1" => "value1", "bad_key1" => "bad_value1", "right_key2" => "value2", "right_key3" => "value3"}
right_keys = ["right_key1", "right_key2", "right_key3"]

上記のcurrent_hashの中からright_keysをキーとするものだけを取り出します。

right_hash = current_hash.slice(*right_keys)
# => {"right_key1"=>"value1", "right_key2"=>"value2", "right_key3"=>"value3"}

解説

  1. sliceはHashクラスのメソッドで、引数は配列(または文字列)です。 引数に配列を入れるときには、配列を展開し(*を使う)てメソッドに渡す必要があります(メソッド呼び出しを参照のこと)。
  2. 引数の値は、レシーバのハッシュのキーまたはそのキーの配列です。レシーバにないキーを含んでいてもエラーになりません。
  3. 破壊的メソッドslice!もあります。
シェア
#内容発言者

roo - Excelファイルの読み込み

配列からHashを作る