![](/img/trans.png)
[英]What's the best way to allow users to input fields that will be serialized as hashes or arrays?
[英]What's the difference between arrays and hashes?
Ruby中的数组和哈希之间有什么区别?
数组:数组用于存储数据集合。 数组中的每个对象都有分配给它的唯一键。 我们可以使用此唯一键访问数组中的任何对象。 数组中的位置从“ 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.