Ruby支援數組以及Hash,數組和Hash都是通過索引訪問的,所不同的是數組通過數字索引,而Hash的索引可以是任何對象,所以數組訪問速度更快(直接定位),而Hash則更加靈活,搜尋元素速度更快(Hash演算法定位索引,無需遍曆)。
Ruby裡面比較有特點的是,數組與Hash都可以容納不同的對象,因為這是Ruby語言所決定的(非強型別語言,單根派生自Object)
數組的一個常用方法是<< 這個方法的作用是添加一個元素在數組中。
sample
class MyClass
def to_s
return "LeeClass"
end
end
arr = %w[How are you.] # The same as arr = ["How", "are", "you."]
arr << "I'm" # Append a element
arr << MyClass.new
arr.each do |item|
if item.class.to_s.upcase != "STRING"
print "#{item}, Type:#{item.class}"
else
print item + " "
end
end
# output: How are you. I'm LeeClass, Type:MyClass
Hash Sample
class MyClass
def to_s
return "hallo"
end
end
mc = MyClass.new
hash = {
:maozedong => "laoda",
:zhouenlai => "laoer",
:jiangjieshi => "fool",
mc => mc
}
puts hash[:maozedong].class.to_s #output String
puts hash[:maozedong] #output laoda
puts hash[mc].class.to_s #output MyClass
puts hash[mc] #output hallo because the puts method default calling to_s