Latest web development tutorials

Рубин хэш (Hash)

Хеш (Hash) похож на "ключ" => "значение" такого набора пар ключ-значение. Подобно хеш, но оно не ограничивается использованием номера индексов.

Хэш-индекс (или "ключ") может быть практически любой объект.

Хэш-массив Хотя похожи, но есть очень важное различие: Hash элементы в произвольном порядке. Если порядок важен, то вы должны использовать массив.

Создание хэш

Как и массив, множество различных способов для создания хэш. Вы можете создать пустой хэш с помощьюновогометода класса:

months = Hash.new

Вы можете также использоватьновыйхэш создается со значениями по умолчанию, без хэш - значение по умолчанию равнонулю:

months = Hash.new( "month" )

或

months = Hash.new "month"

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

#!/usr/bin/ruby

months = Hash.new( "month" )

puts "#{months[0]}"
puts "#{months[72]}"

Запуск в приведенном выше примере выход:

month
month
#!/usr/bin/ruby

H = Hash["a" => 100, "b" => 200]

puts "#{H['a']}"
puts "#{H['b']}"

Запуск в приведенном выше примере выход:

100
200

Вы можете использовать любой объект Ruby, как ключ или значение, или может использовать массив, как показано на примере:

[1,"jan"] => "January"

Hash встроенный метод

Если вам нужно вызвать метод Hash, вам необходимо создать экземпляр объекта Hash. Вот способ, чтобы создать экземпляр объекта Hash:

Hash[[key =>|, value]* ] or

Hash.new [or] Hash.new(obj) [or]

Hash.new { |hash, key| block }

Это вернет данный объект, заполненный новой хэш. Теперь, используя объекты создаются, мы можем назвать любой из доступных методов. Например:

#!/usr/bin/ruby

$, = ", "
months = Hash.new( "month" )

months = {"1" => "January", "2" => "February"}

keys = months.keys

puts "#{keys}"

Запуск в приведенном выше примере выход:

["1", "2"]

Ниже приведены общий метод хэш (предполагая , чтохэш- объект Hash):

Нет. Метод и описание
1 Хэш == other_hash
Проверьте, правильно ли оба имеют одинаковое значение хеш-ключа для числа пар ключ-значение совпадают друг с другом, чтобы определить, являются ли два хэши равны.
2 хэш. [ключ]
Используйте ключевые опорные значения из хэша. Если ключ не найден, а затем вернуться к значениям по умолчанию.
3 хэш. [ключ] = значение
Значение, заданное значениеключа, связанного с данным ключом.
4 hash.clear
Удалить все ключи из хэша.
5 hash.default (ключ = ноль)
Возвращает значение по умолчаниюхэш,если не устанавливается по умолчанию = возвращает ноль. (Если ключ не существует вхэш,а затем [] возвращает значение по умолчанию.)
6 hash.default = OBJ
Установите значения по умолчанию дляхэш.
7 hash.default_proc
Еслихэшсозданный блок, блок возвращается.
8 hash.delete (ключ) [или]
array.delete (ключ) {| ключ | блок}
Удалить изхэш- ключа с помощью парыключей.Если блок и не найти совпадающие пары ключ-значение, результаты блока возвращается. Сравните это сdelete_if.
9 hash.delete_if {| ключ, значение | блок }
Этовернодля каждого блока из блока, удалите ключ изхэша.
10 hash.each {| ключ, значение | блок }
Траверсахэш,вызывается один раз для каждогоключевогоблока, передать ключ-значение как массив из двух элементов.
11 hash.each_key {| ключ | блок}
Траверсахэш,вызывается один раз для каждогоключевогоблока, передатьключв качестве параметра.
12 hash.each_key {| key_value_array | блок}
Траверсахэш,вызывается один раз для каждогоключевогоблока, передатьключизначениев качестве аргументов.
13 hash.each_value {| значение | блок}
Траверсахэш,вызывается один раз для каждогоключевогоблока, передается в качествезначения параметра.
14 hash.empty?
Проверьте, пуст ли хеш (не содержит пары ключ-значение), и возвращаетистинуилиложь.
15 hash.fetch (клавиша [, по умолчанию])[или]
hash.fetch (ключ) {| ключ | блок}
Возвращаемое значение изхэшачерез заданныйключ.Если вы не можете найтиключ,и не обеспечивают дополнительные параметры, броситьIndexErrorисключение, если придефолте,возвращает значение поумолчанию,если необязательный блок, блок результата возвращается.
16 hash.has_key? (ключ) [или] hash.include? (ключ) [или]
hash.key? (ключ) [или] hash.member? (ключ)
Проверьте , если данныйключсуществует в хэш, возвращаетистинуилиложь.
17 hash.has_value? (значение)
Проверьте , содержит ли хэш заданноезначение.
18 hash.index (значение)
Возвращает для данногозначенияхэш -ключа,если совпадение не найдено возвращаетNIL.
19 hash.indexes (ключи)
Он возвращает новый массив по значению данного ключа компонентов. Не удается найти ключ, чтобы вставить значение по умолчанию. Этот метод является устаревшим, пожалуйста, используйте выбрать.
20 hash.indices (ключи)
Он возвращает новый массив по значению данного ключа компонентов. Не удается найти ключ, чтобы вставить значение по умолчанию. Этот метод является устаревшим, пожалуйста, используйте выбрать.
21 hash.inspect
Назад Версия для печати строки хэш.
22 hash.invert
Создайте новыйхэш,хэш - инверсииключейизначений.Другими словами, новыйхэш,хэш - значение становится ключом, значение станет ключевым фактором.
23 hash.keys
Создать новый массив с ключомхэш./ Td>
24 hash.length
Она возвращает целое размерхэшили длину.
25 hash.merge (other_hash) [или]
hash.merge (other_hash) {| ключ, oldval, newval | блок}
Возвращает новый хэш,хэшсодержит содержание иother_hashпереписывает хэш - ключ сother_hashс парой ключей дубликатов.
26 hash.merge! (other_hash) [или]
hash.merge (other_hash)! {| ключ , oldval, newval | блок}
И сливаться то же самое, но на самом деле хэш изменился.
27 hash.rehash
Повторно установитьхэшна основе текущего значения каждогоключа.Если вставить значение изменилось, то процесс будет повторно индексироватьсяхэш.
28 hash.reject {| ключ, значение | блок }
Как и вслучаекаждого ключевогоблока, чтобы создать новыйхэш.
29 hash.reject! {| ключ, значение | блок}
Иотвергаютто же самое, но на самом деле хэш изменился.
30 hash.replace (other_hash)
Заменить содержимоехэшother_hash контента.
31 hash.select {| ключ, значение | блок }
Возвращает новый массив,блоквозвращает значениеИСТИНАзначенияхэш- ключ в парах.
32 hash.shift
Удалить изхешпары ключей и отправляет значение ключа возвращается как массив из двух элементов.
33 hash.size
Она возвращает целоехэшразмера или длины.
34 hash.sort
Хэшпреобразуется в двумерный массив , содержащий массив ключ-значение , а затем сортируются.
35 hash.store (ключ, значение)
Хэш- хранятся в паре ключ-значение.
36 hash.to_a
Создайте двумерный массив из хэша. Каждый ключ-значение пары в массив, все эти массивы хранятся в массиве.
37 hash.to_hash
Возвращаетхэш (само).
38 hash.to_s
Хэшпреобразуется в массив, то массив преобразуется в строку.
39 hash.update (other_hash) [или]
hash.update (other_hash) {| ключ, oldval, newval | блок}
Возвращает новый хэш,хэшсодержит содержание иother_hashпереписываетхэш- ключ сother_hashс парой ключей дубликатов.
40 hash.value? (значение)
Проверьте , содержит лихэшзаданноезначение.
41 hash.values
Он возвращает новый массив , содержащий все значенияхэш.
42 hash.values_at (OBJ, ...)
Он возвращает новый массив , содержащийхэш- значение , связанное с заданным ключом.