Rubyでfetchメソッドを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでfetchメソッドを使う方法について現役エンジニアが解説しています。fetchメソッドとは、Hashオブジェクトに対して使用するメソッドになります。引数にkeyを指定すると値を取得することが出来ます。Hash[:key]との違いは、キーが無い場合に例外が返されることです。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyでfetchメソッドを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでfetchメソッドを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

fetchメソッドとは

fetchメソッドとは、Hashオブジェクトに対して使用するメソッドになります。引数にHashに対するkeyを指定することで、keyとセットであるvalueを取得することができます。

fetchメソッドを使うメリットとよく使われるケース

fetchメソッドは基本動作としてはHash[:key]でのvalueの取得方法と代わりがありませんが、fetchメソッドが異なる点は、Hashに存在しないkeyを指定した場合に、nilではなく例外を返却することです。

もう一つの利点として、fetchメソッドには、デフォルト値を設定することができます。デフォルト値を指定した場合、Hashに存在しないkeyを指定したときに、例外ではなくデフォルト値を返却してくれます。

fetchメソッドを使用することで、「Hashの中にないkeyが来たら例外処理に行き検索したkeyが無いことを伝えたい」場合や「Hashの中にないkeyが来たらデフォルトでエラーメッセージを表示させたい」場合などに簡単に条件分岐させることができるのでよく使用されます。

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

fetchメソッドを使う方法

fetchメソッドの構文は以下のようになります。

Hash.fetch(key,default)

Hashオブジェクトに対してkeyとdefault(省略可)を引きすとして渡すことで、対応するvalue(もしくは例外、デフォルト値)を返却します。

実際に書いてみよう

test_hash = {"aaa":"bbb",

"ccc":"ddd",

"eee":"fff",

"ggg":"hhh"

}

デフォルト値なし

logger.debug(test_hash.fetch("aaa")) // bbb

logger.debug(test_hash.fetch("eee")) // fff

logger.debug(test_hash.fetch("iii")) // test_hash.fetch("iii") KeyError: key not found: "iii"

デフォルト値あり

logger.debug(test_hash.fetch("ccc", :"キーは存在しません")) // ddd

logger.debug(test_hash.fetch("ggg", :"キーは存在しません")) // hhh

logger.debug(test_hash.fetch("kkk", :"キーは存在しません")) // キーは存在しません

 

まとめ

fetchメソッドは分岐処理を簡潔にまとめるために非常に便利なメソッドです。ぜひ、覚えておきましょう。

筆者プロフィール

水野大輝(みずのたいき)

2014年より、某物流会社のシステム開発担当として入社。

未経験ながら、社内システム保守~新規受注システム開発まで携わり、JavaScript Ruby on Rails PostgreSQLなどの経験を積む。
現在も、開発案件に携わりながら、日々勉強中。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。