В Ruby, лямбда-функції представлені анонімними блоками коду, які можна визначити та зберігати в змінних. Це дозволяє їх використовувати як об’єкти, передавати як аргументи в методи, а також використовувати їх в інших конструкціях мови.
Лямбда в Ruby можна визначити за допомогою ключового слова lambda
my_lambda = lambda { |x| x * 2 }
Лямбда в Ruby можна визначити за допомогою ключового слова lambda
або оператора ->
# Використання ключового слова `lambda`
my_lambda = lambda { |x| x * 2 }
# Використання оператора `->`
my_lambda = ->(x) { x * 2 }
Лямбда-функції можуть приймати аргументи, які передаються в тілі функції.
my_lambda = ->(x, y) { x + y }
result = my_lambda.call(3, 4)
puts result
Значення останнього виразу в тілі лямбди вважається значенням, що повертається.
my_lambda = ->(x) { x * 2; puts "Цей рядок не виконається"; }
result = my_lambda.call(5)
puts result # Виведе 10
Лямбда-функції можуть використовуватися як аргументи для методів, таких як each
або map
.
numbers = [1, 2, 3, 4]
square = ->(x) { x**2 }
squared_numbers = numbers.map(&square)
Змінні, визначені поза лямбда-функцією, доступні в тілі лямбди.
outside_variable = 10
my_lambda = -> { puts outside_variable }
my_lambda.call
Використання лямбда-функцій може бути дуже зручним, наприклад, при обробці списків, фільтрації даних, мапування, передача їх як параметри до інших методів або в інших ситуаціях, де потрібно передати коротку анонімну функцію.
Лямбда-функції широко використовуються в функціональному програмуванні, а також в інших стилях програмування для коротких, одноразових виразів, де визначення повноцінної функції здається зайвим.