Сегодня я узнал о методе tap в Ruby

Скажите мне, если это покажется вам знакомым

user = User.find(1)
user.age = 11
user.save
Вход в полноэкранный режим Выход из полноэкранного режима

Это обычный шаблон, который я часто использую. Оказывается, создатели Ruby увидели, что это повторяющийся паттерн, и решили придумать метод tap. Согласно документации: Метод Tap передает self блоку, а затем возвращает self. Основная цель этого метода — «подключиться» к цепочке методов, чтобы выполнить операции над промежуточными результатами в этой цепочке.

Это означает, что приведенный выше блок кода может быть упрощен до

User.find(1).tap do |user|
    user.age = 10
    user.save
end
Вход в полноэкранный режим Выйти из полноэкранного режима

Tap возьмет объект, к которому он обращается, и использует его в следующем блоке.

Оцените статью
Procodings.ru
Добавить комментарий