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"

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Значения переменных по умолчанию

Из книги автора

Значения переменных по умолчанию Сервер Yaffil расширяет синтаксис инструкции declare variable. Можно не указывать ключевое слово variable и указать инициализирующее значение переменной.Пример:declare k =


8.1.26. Указание значения по умолчанию для новых элементов массива

Из книги автора

8.1.26. Указание значения по умолчанию для новых элементов массива Когда массив растет и в нем создаются новые элементы, по умолчанию им присваивается значение nil:a = Array.newa[0]="x"a[3]="y"# а равно ["x", nil, nil, "y"]Но, допустим, нам требуется, чтобы новые элементы получали другое значение.


8.2.1. Создание нового хэша

Из книги автора

8.2.1. Создание нового хэша Как и в случае с классом Array, для создания хэша служит специальный метод класса []. Данные, перечисленные в квадратных скобках, образуют ассоциированные пары. Ниже показаны шесть способов вызвать этот метод (все хэши с a1 до c2 содержат одни и те же


8.2.5. Обход хэша

Из книги автора

8.2.5. Обход хэша В классе Hash имеется стандартный итератор each, а кроме него итераторы each_key, each_pair и each_value (each_pair — синоним each).{"а"=>3, "b"=>2}.each do |key, val| print val, " из ", key, "; " # 3 из a; 2 из b;endОстальные два итератора передают в блок только ключ или только значение:{"а"=>3,"b"=>2}.each_key do


8.2.6. Инвертирование хэша

Из книги автора

8.2.6. Инвертирование хэша Инвертирование хэша осуществляется в Ruby тривиально с помощью метода invert:а = {"fred"=>"555-1122","jane"=>"555-7779"}b = a.invertb["555-7779"] # "jane"Поскольку ключи в хэше уникальны, такая операция может привести к потере данных. Значения-дубликаты будут преобразованы в


8.2.10. Сортировка хэша

Из книги автора

8.2.10. Сортировка хэша Хэши по природе своей не упорядочены ни по ключам, ни по значениям. Чтобы отсортировать хэш, Ruby преобразует его в массив, который затем сортирует. Понятно, что и результатом является массив.names = {"Jack"=>"Ruby","Monty"=>"Python",         "Blaise"=>"Pascal", "Minnie"=>"Perl"} list =


Значения по умолчанию

Из книги автора

Значения по умолчанию Наш пример проиллюстрировал присваивание константам значений по умолчанию. Константам, появляющимся в описании enum, присваиваются целые числа 0, 1, 2 и т. д. в порядке их расположения. Так, описание enum kids {nippy, slats, skip, nana, liz};присваивает nаnа значение 3.


1. Пустые значения (Empty-значения)

Из книги автора

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


2. Неопределенные значения ( Null-значения)

Из книги автора

2. Неопределенные значения (Null-значения) Слово Null используется для обозначения неопределенных значений в базах данных.Чтобы лучше понять, какие значения понимаются под неопределенными, рассмотрим таблицу, являющуюся фрагментом базы данных: Итак, неопределенное


3. Значения по умолчанию

Из книги автора

3. Значения по умолчанию Системы управления базами данных могут иметь возможность создания любых произвольных значений по умолчанию или, как их еще называют, умолчаний. Эта операция в любой среде программирования имеет достаточно большой вес, ведь практически в любой


Ограничения и значения по умолчанию

Из книги автора

Ограничения и значения по умолчанию Минимальный размер кэша- 50 страниц. Максимума не существует, пока выделяемый объем памяти не превышает доступный объем RAM.Величиной выделяемого кэша по умолчанию является:* Суперсервер. Для каждой выполняющейся базы данных 2048 страниц.


18.4.6. Значения переменных, заданные по умолчанию

Из книги автора

18.4.6. Значения переменных, заданные по умолчанию Если при просмотре значения переменной пользователь нажимает клавишу [Return], сценарий завершает работу не всегда. С помощью проверки определяется, установлена ли данная переменная, и если не установлена, то ей может быть