数组和哈希之间有什么区别?

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)

但是,无论是对还是错,你都会看到带有键 – >值对的东西,称为“数组”。

我认为差异主要取决于您何时以及如何使用它们。 调用数组是一个哈希,反之亦然,你不会遇到太多麻烦,但你应该知道它们之间的区别。