Ruby Hash

  #hash
  new_hash1={}
  new_hash1[:key_a]='contents1'
  new_hash1[:key_b]='contents2'
  puts new_hash1[:key_a]
  puts new_hash1
  new_hash2={:key_a=>'contents1',:key_b=>'contents2'}
  puts new_hash2[:key_b]
 
  my_hash={}
#my_hash[:key_a]=123456
my_hash["key_a"]=123456
#puts my_hash[:key_a]
puts my_hash["key_a"]

person={"name"=>"lxee","age"=>25,"sex"=>"男"}    #创建Hash对象
puts person.size.to_s                            #输出Hash对象元素个数
p person.keys()                                #输出所有key
p person.values()                            #输出所有value

person=Hash.new                            #创建Hash类实例
puts person.size.to_s
person["name"] = "zhht"
person["age"]=23
person["sex"]="男"
puts person.size.to_s

person={:name=>"lxee",:age=>25,:sex=>"男"}
p person.keys
p person.values
puts person.include?(:sex)                        #判断是否包含key为:sex的元素
puts person.include?("sex")                        #判断是否包含key为”sex"的元素
person.delete(:sex)                            #删除key为:sex的元素
puts person.has_key?(:sex)                        #判断是否包含key为:sex的元素
puts person.length.to_s                        #输出Hash对象长度

person={"name"=>"lxee","age"=>25,"sex"=>"男"}    #创建Hash对象
person.each do |key,value|                        #each迭代器迭代输出Hash对象里全部元素
    puts key.to_s+" : "+value.to_s
end
person.each_pair do |key,value|                    #each_pair迭代器迭代输出Hash对象里所有key-value对
    puts key.to_s+" : "+value.to_s
end
person.each_key do |key|                        #each_key迭代器迭代输出Hash对象里所有key
    puts key.to_s
end
person.each_value do |value|                    #each_value迭代器迭代输出Hash对象里所有value
    puts value.to_s
end

h = Hash.[](:a,'a',:b,'b')
p h
h = Hash.[](:a=>'a',:b=>'b')
p h
h = Hash[:a,'a',:b,'b']
p h
h = Hash[:a=>'a',:b=>'b']
p h
h={:a,'a',:b,'b'}
p h
h={:a=>'a',:b=>'b'}
p h
h = Hash.new
h[:a]='a'
h[:b]='b'
p h

h1=Hash['a'=>1,'b'=>2]
puts h1['a']

h1.each do |key,value|
  puts "#{key} => #{value}"
end

h1.each_key do |key|
  puts key
  puts h1[key]
end

p h1.merge({:c=>3,:d=>4})    #添加hash键值对
p h1.has_key?('a')
p h1.has_key?(:c)

h={:a=>1,:b=>2}
h.delete(:a)                #删除键为:a的键值对
p h
p h.delete_if{|key,value| key==:b}

h={:a=>1,:b=>2}
p h.invert                  #键值对的键和值互换

h.replace("c"=>3,"d"=>4)    #将Hash替换成括号中的Hash
p h
p h.to_a
p h.to_s

h={:a=>1,:b=>2}
p h.keys
p h.values

 

posted @ 2012-08-13 09:30  残星  阅读(9240)  评论(0编辑  收藏  举报