Hash #
Ruby 支持任何数据类型作为键,也支持 Symbol 作为键
创建Hash #
peter = {:name => 'Peter', :age => 18, 'height' => 180, 'nickname' => 'Pen'}
jack = [:name, 'Jack', :age, 20, :height, 178]
jane = {name: 'Jane', age: 16, height: 160}
空 Hash
empty = {}
hash = Hash.new
使用Hash #
访问元素
puts peter[:name]
puts peter['height']
修改元素
peter[:sex] = 'male'
peter['no'] = 10
删除元素
peter.delete(:age)
获得长度
puts peter.length
遍历 Hash
peter.each { |k, v| puts "#{k} = #{v}" }
peter.each_key{|k| print k}
判断键值对的存在
puts peter.include? :name
Hash 默认值 #
Hash 可以在创建时指定默认值,如果键不存在的话可以直接返回默认值
hash = Hash.new('foo')
puts hash['abc']
常用操作 #
获取键值
keys = months.keys
排序
frequencies = frequencies.sort_by do |key,value|
value
end
frequencies.reverse!
Select
good_movies = movie_ratings.select{ |k,v| v > 3}