Rubyの配列とハッシュの違いは何ですか?
Ruby-Docから:
配列は、オブジェクトの整数でインデックス付けされたコレクションです。 CまたはJavaの場合と同様に、配列のインデックス付けは0から始まります。負のインデックスは、配列の末尾を基準にしたものと見なされます。つまり、-1のインデックスは配列の最後の要素を示し、-2は配列の最後の要素の次というようになります。詳しくは こちら をご覧ください。
ハッシュは、キーと値のペアのコレクションです。これは配列に似ていますが、インデックスは整数インデックスではなく、任意のオブジェクトタイプの任意のキーを介して行われます。ハッシュは、対応するキーが挿入された順序で値を列挙します。
ハッシュにはデフォルト値があり、ハッシュに存在しないキーにアクセスすると返されます。デフォルトでは、その値はnilです。詳しくは こちら をご覧ください。
配列:配列は、データのコレクションを格納するために使用されます。配列内の各オブジェクトには、一意のキーが割り当てられています。この一意のキーを使用して、配列内の任意のオブジェクトにアクセスできます。配列の位置は「0」から始まります。最初の要素は「0」に、2番目の要素は1番目の位置に配置されます。
例:-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']
=>「パルサー220、パルサー200、パルサー180、パルサー150」が表示されます。
配列は、a、b、c、dの順序付けられたリストです。
ハッシュはキーと値のペアのコレクションです。ジョンにはプジョー、ボブにはルノー、アダムにはフォードがあります。
最近では、2つの用語が「ハッシュ化」されています。 I thinkこれがどうなるかです:
「ハッシュ」にはキー->値のペアがあります:
(top -> tshirt, bottom -> shorts, feet -> shoes)
また、「配列」には通常、インデックスがあります。
([0]tshirt, [1]shorts, [2]shoes)
しかし、正しいか間違っているか、「配列」と呼ばれるキー->値のペアも表示されます。
違いは主にいつ、どのように使いたいかにかかっていると思います。配列をハッシュ、またはその逆と呼ぶことにそれほど問題はありませんが、違いを知っている必要があります。