接續昨天的文,
我們知道雜湊為什麼被稱作散列了,
接下來的疑問是:
國中數學有學過矩陣,
所以在學陣列的時候應該比較好理解,
陣列是由元素(element)的集合所組成的資料結構,分配一塊連續的記憶體來儲存。維基百科
也因此是有其排列的順序。
如果用上面的例子改成陣列[],
new_hash = [name: "Ruby", age: 20 ]
p new_hash[0] #{:name=>"Ruby", :age=>20}
p new_hash[1] #nil
你會發現,程式把name: "Ruby", age: 20直接視為同一個hash參數,第二個位置就變nil。
我們可以加上{},區隔開來,而最後一個可以省略{}
new_hash = [{name: "Ruby"}, age: 20 ]
p new_hash[0] #{:name=>"Ruby"}
p new_hash[1] #{:age=>20}
如果改成變數型式,
new_hash = [name = "Ruby", age = 20 ]
p new_hash[0] #"Ruby"
p new_hash[1] #20
就只會出現變數裡的值。
這之間的差別滿有趣的呢!
Ruby
Hash