ruby学习之Hash

     定义

hsh=Hash.new

hsh=Hash[1=>”a”,2=>”b”]

hsh={“1”=>”a”,2=>”b”}

支持任意对象为key,习惯使用Symbol

 

二、常用方法

#!/usr/bin/ruby 
def 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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值