Ответ 1
Таблица слов, словарь и карта часто используются синонимично (в контексте структур данных). Хэш-таблица/хэш-карта - это один вид таблицы/словаря/карты.
{0}
- это блок (анонимная функция), который игнорирует свой аргумент и возвращает число 0. Блок, назначенный Hash.new
, вызывается для создания значения по умолчанию, когда ключ не найден в хэш-карте.
т.е. если я сделаю h = Hash.new {0}
, а затем h["key that does not exist"]
, я вернусь 0, а не nil
(который я получил бы без {0}
). Обратите внимание, что в этом случае, когда значение по умолчанию является неизменным и не зависит от ключа, вам не нужно использовать форму блока Hash.new
, вы можете просто сделать Hash.new(0)
, чтобы установить 0 в качестве значения по умолчанию.