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