1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

0からのRuby入門その7〜ハッシュでキーと値を関連付ける〜

Pocket

はじめに

配列の概念は理解できましたか?

前回は、配列について学んでいきました。
配列は複数の値を扱えますが、他にも方法があります。

それは、「ハッシュ」です。

ハッシュは、キーと値を関連付けて複数個格納できます。
複数の値を扱えるという点については配列と共通していますが、概念や使い方は異なります。

この記事では、Ruby初心者の方向けに、Rubyでのハッシュの扱い方について説明していきます。
配列と合わせて覚えておきましょう。

ハッシュとはなにか?

ハッシュとは、辞書のようなもので、キーと値をペアにして複数個格納できます。

他の言語では、連想配列やディクショナリと呼ばれているものです。配列のように複数の値を格納できます。
また、Ruby 1.9以降では、キーと値が追加された順序が維持されるようになりました。

とはいえ、順序が重要な場合は、ハッシュを使うべきではないかもしれません。
それでは、実際にハッシュを使ってみましょう。

ハッシュを使ってみよう

ハッシュの定義方法は、これまで学んできたものよりもやや複雑です。
書き方を間違えないように注意しましょう。

次の例をみて下さい。

例:

 

ハッシュを定義するには、波括弧({})内にキーと値のペアをカンマ(,)区切りで記述します。さらに、キーと値はハッシュロケット(=>)で区切る必要があります。

最後のカンマはあってもなくてもエラーにはなりませんが、つけておくと新しい要素を追加するときに楽です。

ハッシュの要素にアクセスするには、次のようにキーを指定します。

例:

 

ハッシュの要素にアクセスする際は角カッコ([])を使うので、配列に似ていますね。
ちなみに、次のようにキーに数値や変数を使うこともできます。

例:

 

次に、ハッシュの基本的な操作について学んでいきましょう。

ハッシュの基本的な操作

まずは、ハッシュの要素数を取得する方法です。
それには、次のように「sizeメソッド」を使います。

例:

 

“sizeメソッド”は配列でも使うことができ、”lengthメソッド”と同じ結果を返します。
逆に、ハッシュで”lengthメソッド”を使うことも可能です。

結果はどちらも同じなので、使い分けるか、どちらかに統一するようにしましょう。

次に、ハッシュの要素の追加・更新・削除をしてみましょう。
それには、次のようにします。

例:

 

例では、空のハッシュを作成して、それに対して要素の追加・更新・削除を行っています。

ハッシュでは、キーを中心に操作を行うことを覚えておきましょう。
また、キーもしくは値をまとめて取り出したいときは、次のようにします。

例:

 

「keysメソッド」および「valuesメソッド」は、それぞれ配列で結果を返します。
どちらか一方のみを列挙したいときに役立つでしょう。

配列とハッシュのネストについて

配列やハッシュの値には、任意の要素が持てます。
つまり、配列やハッシュでさえも格納できるということです。

このため、次のように配列の配列を作ることができます。

例:

 

ハッシュの場合も同様に、次のようにネスト(階層化)することができます。

例:

 

このように、配列やハッシュ、数値、文字列などを組み合わせることで、多様なデータ構造を作ることができます。
扱うデータによって、適切な構造を考えてみましょう。

まとめ

ハッシュのイメージが掴めましたか?

ハッシュは辞書の目次のようなもので、キーから素早く値を取り出せます。
キーと値が格納された順番が維持されることを覚えておいて下さい。

Rubyでは、配列のインデックスと同様に、存在しないキーにアクセスしてもエラーとならないことに注意しましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る