1,hash.deep_dup 复制一个hash,操作你复制的hash,而不影响你的原来hash。例子如下:
1.9.3-p125 :010 > hash = { :a => { :b => 'b' } }
=> "c"
反例 :1.9.3-p125 :015 > hash = { :a => { :b => 'b' } }
=> {:a=>{:b=>"b"}}
1.9.3-p125 :016 > dup = hash
=> {:a=>{:b=>"b"}}
1.9.3-p125 :017 > dup[:a][:c] = 'c'
=> "c"
1.9.3-p125 :018 > hash[:a][:c]
=> "c"
1.9.3-p125 :019 > dup[:a][:c]
=> "c"
2,each_pair 循环一个hash,分别的一个键 和值。
1.9.3-p125 :029 > hash.each_pair do |k,t|;
1.9.3-p125 :030 > puts k ;
1.9.3-p125 :031 > puts t;
1.9.3-p125 :032 > end
3, extract返回你需要的一个hash里面的键的值,例如 {:a => 1, :b => 2, :c => 3, :d => 4}.extract!(:a, :b) # => {:a => 1, :b => 2}
4, extract返回你需要的一个hash里面的键的值,例如