Чем block_given? отличается от optional callback и когда что выбирать?

Ruby / RailsJuniorBlocks, Proc, Lambda и EnumerableСравнениеblocksproclambda и enumerable|block_given?|ruby|rails

Что хотят услышать интервьюеры:

Сравнение: «block_given?» обычно оценивают в паре с optional callback. Выбор зависит от читаемости, Rails conventions, стоимости поддержки, безопасности, нагрузки и тестируемости.

Ответ:

Когда выбирать block_given?: когда его свойства прямо решают задачу, а не просто выглядят привычно.

Плохой ответ: «так принято в Rails» без объяснения последствий.

def call yield if block_given? end

Источники

Похожие вопросы