В этой статье давайте посмотрим, что такое хэш? и как Ruby перебирает Hash? а также несколько примеров использования хэшей.

О хэше:

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

Если вы хотите получить углубленные знания о Ruby, перейдите по этой ссылке Обучение Ruby On Rails

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

Мы можем создавать хэши двумя способами. Первый способ, который является более старым синтаксисом. В этом синтаксисе мы используем символ => для фильтрации значения и ключа.

irb :001 › old_syntax_hash = {: name =› ‘джон’}

=› {: name=›’john’}

Ruby версии 1.9 представил второй способ, то есть новый синтаксис, который проще, чем предыдущий синтаксис.

irb :002 › new_hash = {: name: ‘john’}

=› {: name=›’john’}

Используя два способа, мы получаем одинаковые результаты.

  • Мы также можем указать более одной пары ключ-значение в хэшах.

irb :003 › человек = { вес: «60 кг», рост: «5,9 фута»

=›{ вес: «60 кг», рост: «5,9 фута»

  • Мы также можем добавить что-нибудь к предыдущему хешу.

irb :004 › person[:hair] = ‘черный’

=› «черный»

irb :005 › человек

=› { :weight=› ‘60 кг’, :height=› ‘5,9 фута’, :hair=›’черный’}

irb :006› человек[:age]=30

=>30

irb :007› человек

=› { :вес=› ‘60 кг’, :рост=› ‘5,9 фута’, :волосы=›’черный’, :возраст=›30

  • Мы также можем удалить что-либо из предыдущего хеша.

irb :008 › person.delete(:weight)

=› 60 кг

irb 009 › человек

=› { irb :005 › человек

=› { :weight=› ‘60 кг’, :height=› ‘5,9 фута’, :hair=›’черный’}

  • Если вы хотите получить какую-либо информацию из хэша.

irb :010› человек[:возраст]

=>30

  • Мы можем получить любую информацию из хэша, а также объединить два хэша.

irb :011 › person.merge!(new_hash)

=›:height=› ‘5,9 фута’, :hair=›’черный’, :age=›30, :name=›’Джон’}

Как выполнять итерацию по хэшам?

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

Пример:

# iterating_over_hashes.rb

человек = {имя: «Джон», вес: «60 кг», рост: «5,9 фута», волосы: «черные»

person.each do |key, value|

помещает "#{ключ} Джона – это #{значение}"

конец

Мы присвоили переменной значение и ключ в методе «каждый». В приведенном выше примере мы дали ключ переменной «ключ» и значение переменной «значение».

Вывод:

Джона зовут Джон

Вес Джона 60 кг

Рост Джона 5,9 фута

У Джона черные волосы

Что такое распространенные методы хеширования?

Давайте посмотрим на некоторые общие методы, которые мы используем в классе Ruby Hash.

  1. has_key?: этот метод используется для проверки наличия у хэша определенного ключа. Этот метод возвращает логическое значение.
  2. Select: этот метод используется для перемещения блока и возврата любых пар ключ-значение, которые проверяются на истинность, если они проходят через блок.
  3. Fetch. Этот метод используется для перемещения заданного ключа и возвращает значение ключа, если оно есть. Мы также можем дать выбор для возврата, если этого ключа нет.
  4. to_a: при вызове этого метода он возвращает ваш хеш в виде массива. Это не изменит хэш полностью.
  5. ключи и значения. Этот метод используется для получения всех значений или ключей из хэша. Он возвращается в виде массива. Вы можете делать такие вещи, как печатать все ключи в хэше, поскольку он дает массив.

Если вы используете более старую версию Ruby, то есть до Ruby 1.9, нет необходимости указывать хэши в определенном порядке. Но если вы используете последнюю версию Ruby 1.9, хэши располагаются в порядке их сохранения.

Концепция пары ключ-значение также хорошо используется и в других технологиях, поэтому лучше иметь представление об этой теме. В этой статье я поделился некоторой информацией о том, что такое хэш? И как перебирать хеш, я поделюсь дополнительной информацией о хешах в следующей статье. Зарегистрируйтесь на бесплатную демо-версию на Онлайн-обучении по Ruby On Rails