ハッシュも配列と同じようにオブジェクトを複数格納することができますが、ハッシュの場合は文字列などを「キー」として定義し、その「キー」にそれぞれのオブジェクトを格納していきます。書き方は↓のようになります。
1 |
ハッシュ名 = { キー1 => オブジェクト1, キー2 => オブジェクト2 } |
具体的には↓のように書いていきます。今回も配列の場合と同じようにじゃんけんの手の種類で書いてみました。
1 |
janken = { "rock" => "gu-", "paper" => "pa-" } |
ここから、”rock”に格納されたオブジェクトを取り出したい場合は「ハッシュ名[キー]」のように記述します。
1 |
p janken["rock"] |
"gu-"
Contents
シンボルを使い簡単に記述
ハッシュは良く使われるため、「シンボル」を使った簡単な書き方があります。↓の方がスッキリとしていて読みやすいですね。
1 |
janken = { rock: "gu-", paper: "pa-" } |
シンボルとは?
文字列に似たオブジェクトでハッシュのキーにて良く使われます。
また、今回「rock:」は文字列「”rock”」ではなくシンボルとなっています。キーであるrockのオブジェクトを取り出す場合は文字列ではなくシンボルで指定する必要があります。具体的には↓のような書き方になります。文字列に似たオブジェクトでハッシュのキーにて良く使われます。
1 |
p janken[:rock] |
"gu-"
オブジェクトの書き換え
キーの内容を書き換えたい場合は↓のように記述します。「ハッシュ名[キー]」で書き換え対象を指定してそれに値を代入している感じになります。
1 2 3 |
janken = { rock: "gu-", paper: "pa-" } janken[:rock] = "グー" p janken |
{:rock=>"グー", :paper=>"pa-"}
キーの追加
キーと格納するオブジェクトを追加したい場合は↓のように記述します。「ハッシュ名[キー]」で存在しないキーを設定し、オブジェクトを代入すればOKです。
1 2 3 |
janken = { rock: "gu-", paper: "pa-" } janken[:scissors] = "tyoki" p janken |
{:rock=>"gu-", :paper=>"pa-", :scissors=>"tyoki"}
コメントを残す