【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用について
  • facebookページ
  • twitterページ
  • 2017.10.17

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用について

    【Ruby入門】ハッシュとシンボルの基本」にて、ハッシュの基本を解説しました。そこで本記事ではそれに続き、より実践的なハッシュの使い方について解説します。

    ハッシュに値をセットしたあと、それをどう使うか(つまりどうやって取り出すか)が問題となります。

    ハッシュもオブジェクトです。となると、配列と同じようにハッシュもeachメソッドが使えます。ハッシュ.eachで取り出すことが可能です。本記事ではその方法を解説します。

    その他、本記事ではハッシュから配列とその逆への変換ハッシュの入れ子(ハッシュの中にハッシュ)ハッシュの便利な表示方法を解説します。

    なお、一般的にハッシュのキーにはシンボルを使います。本記事でもそれに従い、キーはすべてシンボルを使います。シンボルとは何?とお忘れの方は、冒頭のリンクより前の記事を開き、読みなおすことをおすすめします。

    ハッシュをeachで取り出す

    冒頭でふれたように、配列で出てきたeachですが、ハッシュにも使えます。

    [書式]

    配列のeachと異なり、キーと値を取り出さなくてはいけないので、ブロック変数はkeyとvalueの2つになります。

    [実行結果]

    ブロック変数「|key, value|」で取り出せるのですが、putsで表示するときは文字列に変換しなくてはなりません。よって上記プログラムではキーに.to_sメソッドを使って文字列に変換しています。

    今度は、式展開を使って内容を表示させてみましょう。

    先ほどと同じ結果が得られます。

    式展開を使うとto_sが必要ないことも注目してください。

    キーを指定して削除する

    要素を削除するときは、deleteを使います。

    [実行結果]

    :user1を削除できました。

    条件を指定して削除することも可能です。

    [実行結果]

    条件をブロックで渡して、満たすものだけ削除できました。

    ハッシュから配列、その逆

    to_aメソッドやto_hメソッドを使い、ハッシュから配列、配列からハッシュへ相互に変換する方法を解説します。

    まずはハッシュから配列への変換です。

    [実行結果]

    一体何が起こったのかお分かりでしょうか?

    1つの大きい配列に、2つの小さい配列が入れ子で入っています。つまり、ハッシュのキーと値をセットとした、1つの小さな配列になっています。

    ハッシュを配列にできるのなら、逆の考え方もできますよね。

    つまり、配列の入れ子をハッシュにできそうです。

    やってみましょう。

    [実行結果]

    先ほどの実行結果をそのまま使い配列を作成し、to_hメソッドでハッシュ化できました。

    ハッシュの中にハッシュ

    もっと複雑なハッシュを見てみましょう。ハッシュの中にハッシュを入れることも可能です。

    例えば、以下のような構成を考えます。

    これをハッシュで実装します。

    [実行結果]

    ハッシュを多重で定義できました。

    ppメソッド

    ハッシュが複雑になると、putsメソッドやpメソッドで表示させても見づらいです。そんなときはppメソッドを使うと便利です。

    先ほどの例を使います。

    [実行結果]

    ちょっとだけ見やすくなりました。

    まとめ

    本記事では、ハッシュの応用的な使い方を解説しました。

    ぜひハッシュの考え方をマスターし、配列とハッシュのいずれを使うのか適切な判断ができるようになってくださいね!


    Ruby on Railsのフリーランスは高収入でおすすめ!

    Rubyができる方は多くはいないのが現状です。 プロジェクトは右肩上がりで増えているので、エンジニアが全く足りておりません。 Rubyの実務経験が1年以上ある方はフリーランスになることもできるので、ぜひご興味があればポテパンの無料カウンセリングをご利用下さいませ! Ruby案件に関する情報は下記にまとまっていますのでぜひご覧下さい。

    Ruby on Rails案件のイマがわかる!知って見つかる最適案件


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE