Ruby中Hash哈希结构的基本操作方法小结

2019-09-25 09:36:08刘景俊

e.g.
       

 student = {
         "name" => "Steve",
         "age" => 22,
         "Gender" => "male"
        }   
   p student.keys                           #=> ["name", "Gender", "age"]
   p student.values                        #=> ["Steve", "male", 22]
   puts student.include?("age")                #=> true
   puts student.size                          #=> 3
   student.delete("Gender")
   puts student.has_key?("Gender")              #=>false
   puts student.size                          #=>2

 
深度挖掘
1.把Hash当作数组来处理:
Hash中的keys and values方法的返回值都是一个数组,所以我们可以使用数组的方法来对它们操作:

h1 = {1=>'one', 2=>'two', 3=> 'three',4=> 'four'}
h2 = {1=>'one', 3=>'two', 4=> 'four',5=> 'five'}
 
p( h1.keys & h2.keys )
p( h1.values & h2.values )
p( h1.keys+h2.keys )
p( h1.values-h2.values )
p( (h1.keys << h2.keys) )
p( (h1.keys << h2.keys).flatten)

结果:

[1, 3, 4]
["one", "two", "four"]
[1, 2, 3, 4, 5, 1, 3, 4]
["three"]
[1, 2, 3, 4, [5, 1, 3, 4]]
[1, 2, 3, 4, 5, 1, 3, 4]

 
2.追加和连续的区别:
+:给一个数组添加元素,创建一个新的数组
<<:给一个数据添加元素,直接操作原数组,当给一个数组添加的新元素也是一个数组时,该新元素作为数组的最后一个元素:

  a=[1,2,3]
  b=[4,5,6]
 
  p(a+b)
  p(a<<b)

结果:

[1, 2, 3, 4, 5, 6]
[1, 2, 3, [4, 5, 6]]     #[1, 2, 3, [4, 5, 6]].flatten =>[1, 2, 3, 4, 5, 6]