Подтвердить что ты не робот

Какая разница между массивами и хешами?

Какая разница между массивами и хэшами в Ruby?

4b9b3361

Ответ 1

Из Ruby-Doc:

Массивы упорядочены, целые индексированные коллекции любого объекта. Индексирование массива начинается с 0, как на C или Java. Предполагается, что отрицательный индекс относится к концу массива, то есть индекс -1 указывает последний элемент массива, -2 - это следующий за последним элементом в массиве и т.д. Посмотрите здесь для более.

A Hash - это набор пар ключ-значение. Он похож на Array, за исключением того, что индексирование выполняется с помощью произвольных ключей любого типа объекта, а не целочисленного индекса. Хаши перечисляют свои значения в том порядке, в котором были вставлены соответствующие ключи.

Хэши имеют значение по умолчанию, которое возвращается при доступе к ключам, которые не существуют в хэше. По умолчанию это значение равно нулю. Посмотрите здесь для более.

Ответ 2

Массивы: Массивы используются для хранения коллекций данных. Каждому объекту в массиве присваивается уникальный ключ. Мы можем получить доступ к любому объекту в массиве с помощью этого уникального ключа. Позиции в массиве начинаются с "0". Первый элемент расположен в "0", второй - в 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"

Ответ 3

Массив - упорядоченный список вещей: a, b, c, d

Хеш - это набор пар ключ/значение: у john есть peugeot, у bob есть renault, у adam есть ford.

Ответ 4

В эти дни оба термина становятся "хэшированными". Я думаю, что так оно и есть:

"hash" будет иметь пары ключей → значение:

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

И "массив" обычно имеет индекс:

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

Но, правильно или неправильно, вы увидите вещи с парами ключ → значение, называемыми также "массивы".

Я думаю, что разница зависит в основном от того, когда и как вы хотите их использовать. Вам не составит большого труда вызвать массив хешем или наоборот, но вы должны знать разницу.