ruby学习之Hash
2015-01-12 02:47
190 查看
一、定义:
hsh=Hash.newhsh=Hash[1=>”a”,2=>”b”]
hsh={“1”=>”a”,2=>”b”}
支持任意对象为key,习惯使用Symbol
二、常用方法
#!/usr/bin/rubydef printResult(args)
print args
puts ""
end
hsh={:a=>"hello",:b=>"world"}
puts hsh
# hsh.clear()
# puts hsh
hsh.delete(:a)
puts hsh
hsh[:c]="third"
puts hsh
hsh.delete_if(){|key,value| value=="third"}
puts hsh
puts hsh.has_key?(:b)
puts hsh.has_value?("world")
puts hsh.invert()
hsh[:d]="ddd"
hsh[:e]="eee"
printResult hsh.keys()
printResult hsh.values
printResult hsh.values_at(:b,:d)
puts hsh.length()
puts hsh.merge({:b=>"bbbb",:f=>"ffff"})
puts hsh.replace({:b=>"b2b2b2",:g=>"ggg"})
print hsh.to_a()
result:
{:a=>"hello", :b=>"world"}
{:b=>"world"}
{:b=>"world", :c=>"third"}
{:b=>"world"}
true
true
{"world"=>:b}
[:b, :d, :e]
["world", "ddd", "eee"]
["world", "ddd"]
3
{:b=>"bbbb", :d=>"ddd", :e=>"eee", :f=>"ffff"}
{:b=>"b2b2b2", :g=>"ggg"}
[[:b, "b2b2b2"], [:g, "ggg"]][Finished in 0.1s]
三、查找和迭代
Hash是可枚举类型的对象,具有其搜索遍历和排序的能力,参见ruby之Enumerable#!/usr/bin/ruby
def printResult(args)
print args
puts ""
end
hsh={:a=>1,:b=>2,:c=>5,:d=>4}
printResult hsh.find_all(){|key,value| value > 2}
printResult hsh.map { |key,value| key }
printResult hsh.max
printResult hsh.sort
printResult hsh.sort_by(){|key,value| value}
hsh.each do |key,value|
print key
end
puts ""
hsh.each_key() do |key|
print key
end
puts ""
hsh.each_value() do |value|
print value
end
result:
[[:c, 5], [:d, 4]]
[:a, :b, :c, :d]
[:d, 4]
[[:a, 1], [:b, 2], [:c, 5], [:d, 4]]
[[:a, 1], [:b, 2], [:d, 4], [:c, 5]]
abcd
abcd
1254
[Finished in 0.1s]
相关文章推荐
- ruby学习笔记-hash方法汇总
- 我的Ruby学习历程之初识Hash(杂凑)
- ruby and watir学习之_Hash 类
- ruby的hash学习笔记例: 将字符串文本中的单词存放在map中
- Ruby学习笔记-Hash
- ruby学习笔记(1)--类的属性与方法
- ruby学习笔记之一:ruby概述
- ruby学习笔记(7)-方法
- Ruby: 学习日志1: 基础
- ruby on rails学习笔记--Views(1)
- [原创]Ruby学习笔记(5)-利用ActiveRecord访问数据库
- Ruby: 学习日志2: Class
- 开始学习ruby!!!
- Ruby on Rails学习拾遗(二)—函数的代码块和迭代器
- 学习 Ruby 的三十七个理由(转贴)
- [原创]Ruby学习笔记(3)-给源代码加上行号
- Ruby学习之路-容器
- Ruby on Rails学习拾遗(三)—使用yaml做配置
- [原创]Ruby学习笔记(4)-闰年、季节和月份天数的Ruby版和Python版
- [原创]Ruby学习笔记(1)-环境配置