今回はRubyでよく使うHashについて書き残しておきます。
#ハッシュ(Hash)とは?
ハッシュは文字列やシンボル等をキーにしてオブジェクトに格納するコンテナのこと。
以下のように{シンボル:値}で定義して出力することができます。
hash.rb
address = {name: "鈴木", furigana: "suzuki", tel:"123456"}
p address[:name]
p address[:furigana]
p address[:tel]
p address
実行結果
"鈴木"
"suzuki"
"123456"
{:name=>"鈴木", :furigana=>"suzuki", :tel=>"123456"}
#シンボルとは?
シンボル(Symnbol)とは文字列に似たオブジェクトで、Rubyがメソッドなどの名前を識別するためのラベルをオブジェクトにしたもの。シンボルには、先頭に「:」をつけて表現する。
ハッシュは文字列でも使えるが、シンボルを使った方が効率がいいらしい。
####シンボルと文字列の違いは?
シンボルは文字列に「:」がついただけに見えるが、数値で処理されるため、文字列より早く処理できる。
#eachを使用したハッシュの取り出し方
eachメソッドを使用して、ハッシュaddressが持っている項目名とその値を表示していきます。
hash.rb
address.each do |key, value|
puts "#{key}: #{value}"
end
実行結果
name: 鈴木
furigana: suzuki
tel: 123456
#ハッシュのキー検索の仕方
key?メソッドで検索できます。引数には検索したいシンボルを入力します。
hash.rb
address = {name: "鈴木", furigana: "suzuki", tel:"123456"}
p address.key?(:name)
p address.key?(:suzuki)
実行結果
true
false
#ハッシュの値検索の仕方
value?メソッドで検索できます。引数には検索したい文字列を入力します。
hash.rb
address = {name: "鈴木", furigana: "suzuki", tel:"123456"}
p address.value?("name")
p address.value?("suzuki")
実行結果
false
true
以上、ハッシュの使い方まとめでした!