#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