options.fetch. Я не понимаю - PullRequest
1 голос
/ 10 мая 2010

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

Ответы [ 2 ]

5 голосов
/ 10 мая 2010

В первом патче на Rails ticket # 4558 :

options.fetch(:alt, File.basename(src, '.*').capitalize)

Эта строка выполняет функции basename и capitalize, а затем передает результат в Hash#fetch независимо от того, существует ли значение для: alt в хэше параметров.

В обновленном патче :

options.fetch(:alt) { File.basename(src, '.*').capitalize }

Тот же код базового имени / заглавной буквы выполняется только тогда, когда Hash#fetch требуется значение по умолчанию (т. Е. Когда ключ: alt не существует в хеше параметров). Это означает, что (возможно, дорого) вычисление значения по умолчанию может быть пропущено, если оно не требуется.

Подробнее см. Документацию по Hash#fetch.

1 голос
/ 11 мая 2010

Я не знаю, что Rails пробивал утки с Hash#fetch, но с Plain Old Ruby Objects я использую его вместо Hash#[], потому что, когда я что-то спрашиваю, а он недоступен, я хочузнать об этом.Это называется «Сбой рано» (или «Сбой рано» в Список прагматических программистов Список советов )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...