一からRuby on Rails備忘録

Rubyでハッシュの操作

Rubyでハッシュの操作を行う方法をinteractive Ruby (irb)を使って確認しました。

●interactive Ruby (irb)の起動方法
$ rails console
 
1)ハッシュ
 
・中かっこ”{}”の中でキーと値を指定してハッシュを定義。
・値は、ハッシュ名[キー]でアクセス。
 
irb(main):001:0> user = {}
irb(main):002:0> user[“first_name”] = “Michael”
irb(main):003:0> user[“last_name”] = “Hartl”
irb(main):004:0> user[“first_name”]
=> “Michael”
irb(main):005:0> user
=> {“first_name”=>”Michael”, “last_name”=>”Hartl”}
irb(main):006:0> user = { “first_name” => “Michael”, “last_name” => “Hartl” }
=> {“first_name”=>”Michael”, “last_name”=>”Hartl”
 
2)シンボルと文字列
 
・文字列は二重引用符で囲んでいたが、シンボルは、頭にコロン:を置く。
・キー値などでシンボルを文字列の代わりに使用できるが、すべて文字列と同じように使用できるわけではない。splitやreverseメソッドは使用できない。
irb(main):007:0> “name”.split(”)
=> [“n”, “a”, “m”, “e”]
irb(main):008:0> :name.split(”)
NoMethodError: private method `split’ called for :name:Symbol   from (irb):8
irb(main):009:0> “foobar”.reverse
=> “raboof”
irb(main):010:0> :foobar.reverse
NoMethodError: undefined method `reverse’ for :foobar:Symbol
from (irb):10
 
3)ハッシュのキーにシンボルを使用

 
irb(main):011:0> user = { :name => “Michael Hartl”, :email => “michael@example.com” }
irb(main):012:0> user[:name]
=> “Michael Hartl”
 
4)ネストしたハッシュ
 
irb(main):027:0> params = {}
irb(main):029:0> params[:user] = { :name => “Michael Hartl”, :email => “michael@example.com” }
irb(main):030:0> params
=> {:user=>{:name=>”Michael Hartl”, :email=>”michael@example.com”}}
irb(main):031:0> params[:user][:email]
=> “michael@example.com”
 
5)ハッシュに対してeachメソッドを使用
 
irb(main):032:0> flash = { :success => “It worked!”, :error => “It failed.” }
irb(main):033:0> flash.each do |key, value|
irb(main):034:1* puts “Key #{key.inspect} has value #{value.inspect}”
irb(main):035:1> end
Key :success has value “It worked!”
Key :error has value “It failed.”
=> {:success=>”It worked!”, :error=>”It failed.”}

モバイルバージョンを終了