fetchメソッドとは
fetchとは
fetchメソッドは引数にハッシュのキーを指定することにより、そのキーとセットになっているバリューを取り出してくれるメソッド。
使い方
hash.fetch(key)
基本的には「hash:[キー]」でバリューを取り出す動作と代わりないが、fetch
では指定したキーが存在しない場合は例外を返す。
fruits = { "apple" => 100, "orange" => 80, "melon" => 450 }
puts fruits.fetch("apple")
=> 100
puts fruits.fetch("orange")
=> 80
puts fruits.fetch("melon")
=> 450
fetch
の例外処理も見てみる。
fruits = { "apple" => 100, "orange" => 80, "melon" => 450 }
puts fruits.fetch("banana")
=> `fetch’: key not found: “banana” (KeyError)
from Main.rb:5:in `<main>’
ここではハッシュに存在しないキー「banana」を指定したため例外KeyError
が発生した。
例外処理を発生させたい場合は、以下のようにfetch
メソッドを使用する。
begin
fruits = { "apple" => 100, "orange" => 80, "melon" => 450 }
puts fruits.fetch("banana")
rescue => e
puts e
end
=> key not found: “banana”
また、fetch
メソッドでは第二引数にデフォルトのバリューを設定することができる。
第二引数にデフォルトのバリューを設定しておくことで、キーが存在しなかった場合は例外ではなく、指定したデフォルトの値を返す。
fruits = { "apple" => 100, "orange" => 80, "melon" => 450 }
puts fruits.fetch("banana", :"このキーは存在しません")
=> このキーは存在しません
参考記事
Author And Source
この問題について(fetchメソッドとは), 我々は、より多くの情報をここで見つけました https://qiita.com/mmaumtjgj/items/f1917030223cf6ecdff4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .