#シンボル(symbol)とは
シンボルはコロン記号(:)から始める。日本語ではあまり使わない。
シンボルも文字列や整数と同じようにオブジェクトの種類の一つ。シンボルのクラス名はSymbol。
● to_sym
to_symメソッドは文字列からシンボルへ交換
● to_s
to_sメソッドはシンボルから文字列へ交換
ハッシュの書き方
Ruby超入門のP148に書いてある
#キーと値の組を追加・削除する
ハッシュへキーと値を追加する
menu = {coffe:300,cafe_latte:400}
menu[:mocha] = 400
p menu
↪️{:coffe=>300, :cafe_latte=>400, :mocha=>400}
存在しないキーを指定した時.
menu = {coffe:300,cafe_latte:400}
p menu[:tea]
↪️nil
ハッシュから存在しないキーを指定して値を取得しようとすると、nilが得られる。
menu = {coffe:300,cafe_latte:400}
menu.default = 0
p menu[:tea]
↪️0
存在しないキーを指定した時の値は、default=メソッドで設定することもできる。
###2つのハッシュを1つにまとめる
●merge
mergeメソッドは2つのハッシュを1つにまとめるときに使う。mergeメソッドは元のハッシュと、指定したハッシュを1つにまとめて新しいハッシュを作るメソッド。
coffee_menu = {coffee: 300, caffe_latte: 400}
tea_menu = {tea: 300,tea_latte: 400}
menu = coffee_menu.merge(tea_menu)
↪️{:coffee=>300, :caffe_latte=>400, :tea=>300, :tea_latte=>400}
#ハッシュからキーと値の組みを削除する
● delete
menu = {coffee: 300,caffe_latte: 400}
menu.delete(:caffe_latte)
p menu
↪️{:coffee=>300}
deleteメソッドはハッシュからキーと値の組を削除するときに使う。
ハッシュを繰り返し処理する
ハッシュ.each do |キーの変数,値の変数|
繰り返し実行する処理
end
menu = {"コーヒ" => 300,"カフェラテ" => 400}
menu.each do |key, value|
puts "#{key}は#{value}円です"
end
↪️コーヒは300円です
カフェラテは400円です
###キーだけを処置したいとき
● each_key
each_keyメソッドはキーだけで繰り返し行うメソッドです。
menu = {"コーヒ" => 300,"カフェラテ" => 400}
menu.each_key do |key|
puts key
end
↪️コーヒ
カフェラテ
同様に値だけを繰り返しするeach_valueメソッドもあります