Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

ハッシュ

ハッシュは配列と似たようなデータの集まりです。配列は要素をインデックスで取り出していましたが、ハッシュではキーを使って値を取り出します。ハッシュオブジェクトは{}を使って作ります。

変数 = {キー => 値}

このようにおこなうことで変数はハッシュオブジェクトを指し示します。

hash = {"key" => 23} 
p hash["key"]  #=> 23

配列オブジェクトと同じように[]メソッドを使って値を取り出しています。ただし、ハッシュオブジェクトは配列オブジェクトと違ってインデックスがありません。ハッシュオブジェクトから値を取り出す時はキーを指定します。"foo"という文字列をキーにして値を取り出して表示しています。

hash = {:foo => 23} 
p hash[:foo]  #=> 23

このようにキーを書くこともできます。キーに指定した「:foo」のように「:」が文頭に来るのはシンボルと言います。Rubyでは、どのようなオブジェクトでもハッシュのキーに使えることができますが、大抵の場合はシンボルや文字列を使います。

以下のようにするとハッシュオブジェクトの値を変更できます。

hash = {:foo => 23} 
hash[:foo] = 42
p hash[:foo]  #=> 42

ハッシュオブジェクトの要素は「,」を使うことで区切ることができます。以下のようにするとハッシュオブジェクトは複数の要素を持つことができます。

hash = {:foo => "foo", :bar => "bar", :baz => "baz"}
p hash[:foo]  #=> "foo"
p hash[:bar]  #=> "bar"
p hash[:baz]  #=> "baz"

ハッシュオブジェクトの入れ子

ハッシュオブジェクトはさまざまなオブジェクトを要素にできます。先ほど紹介した配列オブジェクトもオブジェクトなのでハッシュオブジェクトの要素にできます。

hash = {:ary => ["foo", "bar"]}
p hash[:ary][0]  #=> "foo"
p hash[:ary][1]  #=> "bar"

配列オブジェクトはインデックスを指定することで値を取り出せます。だから、ハッシュオブジェクトのキーが指し示す配列オブジェクトのインデックスを指定します。

同じようにハッシュオブジェクトの要素としてハッシュオブジェクトを入れることもできます。

hash = {:hash => {:foo => 23, :bar => 42}}
p hash[:hash][:foo]  #=> 23
p hash[:hash][:bar]  #=> 42

Hash#deleteメソッド

deleteメソッドの引数にハッシュオブジェクトのキーを指定すると、その要素を削除します。

hash = {:foo => 23}
hash.delete(:foo)
p hash  #=> {} 

Hash#clearメソッド

ハッシュオブジェクトの要素をすべて削除します。

hash = {:foo => 23} 
p hash[:foo]  #=> 42
hash.clear
p hash        #=> {}


次のコンテンツ ホームへ戻る