Книга: Программирование на языке Ruby
8.2.2. Указание значения по умолчанию для хэша
8.2.2. Указание значения по умолчанию для хэша
Значением по умолчанию для хэша является объект, возвращаемый вместо nil
в случае, когда указанный ключ не найден. Это полезно, если вы планируете вызывать для возвращенного значения методы, которые для nil
не определены. Задать значение по умолчанию можно в момент создания хэша или позже с помощью метода default=
.
Все отсутствующие ключи указывают на один и тот же объект по умолчанию, поэтому изменение данного объекта имеет побочный эффект.
а = Hash.new("missing") # Объект по умолчанию - строка "missing".
a["hello"] # "missing"
а.default="nothing"
a["hello"] # "nothing"
a["good"] << "bye" # "nothingbye"
a.default # "nothingbye"
Имеется также специальный метод экземпляра fetch
, который возбуждает исключение IndexError
, если в объекте типа Hash
нет указанного ключа. Он принимает также второй параметр, играющий роль значения по умолчанию. Кроме того, методу fetch
можно передать необязательный блок, который выработает значение по умолчанию, если ключ не будет найден. Таким образом, каждому отсутствующему ключу можно сопоставить свое «значение по умолчанию».
а = {"flat",3,"curved",2,"angled",5}
a.fetch("pointed") # IndexError
a.fetch("curved","na") # 2
a.fetch("x","na") # "na"
a.fetch("flat") {|x| x.upcase} # 3
a.fetch("pointed") {|x| x.upcase) # "POINTED"
- 8.2.1. Создание нового хэша
- 8.2.2. Указание значения по умолчанию для хэша
- 8.2.3. Доступ к парам ключ-значение и добавление новых пар
- 8.2.4. Удаление пар ключ-значение
- 8.2.5. Обход хэша
- 8.2.6. Инвертирование хэша
- 8.2.7. Поиск ключей и значений в хэше
- 8.2.8. Копирование хэша в массив
- 8.2.9. Выборка пар ключ-значение по заданному критерию
- 8.2.10. Сортировка хэша
- 8.2.11. Объединение двух хэшей
- 8.2.12. Создание хэша из массива
- 8.2.13. Вычисление разности и пересечения хэшей
- 8.2.14. Хэш как разреженная матрица
- 8.2.15. Реализация хэша с повторяющимися ключами
- Значения по умолчанию
- 8.2.10. Сортировка хэша
- 8.1.26. Указание значения по умолчанию для новых элементов массива
- 8.2.6. Инвертирование хэша
- 8.2.12. Создание хэша из массива
- 8.2.1. Создание нового хэша
- Ответный файл, используемый по умолчанию (csc.rsp)
- Выражения в значениях по умолчанию для доменов
- Значения переменных по умолчанию
- 1. Пустые значения (Empty-значения)
- 2. Неопределенные значения (Null-значения)
- 3. Null-значения и общее правило вычисления выражений