簡體   English   中英

數組和哈希之間有什么區別?

[英]What's the difference between arrays and hashes?

Ruby中的數組和哈希之間有什么區別?

從Ruby-Doc:

數組是任何對象的有序,整數索引的集合。 數組索引從0開始,如C或Java。 負索引被假定為相對於數組的末尾,即索引-1表示數組的最后一個元素,-2是數組中最后一個元素的下一個,依此類推。 在這里查看更多。

哈希是鍵值對的集合。 它類似於Array,不同之處在於,索引是通過任何對象類型的任意鍵完成的,而不是通過整數索引完成的。 哈希值按插入相應鍵的順序枚舉其值。

哈希具有訪問哈希中不存在的鍵時返回的默認值。 默認情況下,該值為nil。 在這里查看更多。

數組:數組用於存儲數據集合。 數組中的每個對象都有分配給它的唯一鍵。 我們可以使用此唯一鍵訪問數組中的任何對象。 數組中的位置從“ 0”開始。 第一個元素位於“ 0”,第二個元素位於第一個位置,依此類推。

示例:在-irb中嘗試以下操作。

bikes = Array.new
bikes = %w[Bajaj-Pulsar, Honda-Unicorn, TVS-Apache, Yamaha, Suzuki]

您已在數組中添加了4個元素。

puts bikes[3]
Yamaha,

在位置5添加一個新元素。

bikes[5] = "Hardly Davidson"

哈希:與數組一樣,哈希也用於存儲數據。 哈希將一個對象指向另一個對象。 考慮為字符串分配特定的“含義”。 每次引用該字符串時,都會引用其“含義”。

例:

bikes = Hash.new
bikes = {
'Bajaj' => 'Pulsar 220, Pulsar 200, Pulsar 180 and Pulsar 150',
'Honda' => 'Unicorn, Shine and Splendor',
'TVS' => 'Apache, Star City, and Victor'
}

立即嘗試:

bikes['Bajaj']

您將獲得=>“ Pulsar 220,Pulsar 200,Pulsar 180和Pulsar 150”

數組是事物的有序列表:a,b,c,d

哈希是鍵/值對的集合:約翰有標致,鮑勃有雷諾,亞當有福特。

最近,這兩個詞一起“變混了”。 認為這是這樣的:

“哈希”將具有鍵->值對:

(top -> tshirt, bottom -> shorts, feet -> shoes)

一個“數組”通常會有一個索引:

([0]tshirt, [1]shorts, [2]shoes)

但是,對還是錯,您也會看到鍵->值對(稱為“數組”)的事物。

我認為差異主要取決於您何時以及如何使用它們。 將數組稱為散列不是很麻煩,反之亦然,但是您應該知道其中的區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM