Closure

Замыкания (closures) в Ruby - это блоки кода, которые запоминают контекст своего создания (переменные окружения) и могут использовать его при выполнении, даже будучи вызванными вне этого контекста

def multiplier(factor)
->(x) { x * factor }
end

double = multiplier(2)
puts double.call(5) # => 10
puts double.call(2) # => 4
puts double.call(7) # => 14
  • Переменные окружения: Замыкание хранит ссылки на переменные из той области видимости, где было создано.
  • Преимущества: Замыкания обеспечивают высокую гибкость, позволяя передавать логику внутрь методов, что является ключевой особенностью