Лямбда-функції (lambda) і ключове слово yield в Ruby мають різні цілі та способи використання.
- Лямбда-функції - це анонімні функції, які можна зберігати у змінній та викликати пізніше.
- Вони створюються за допомогою ключового слова
lambda
. - Можуть приймати аргументи та повертати значення.
- Лямбди можна використовувати як аргументи функцій або методів, передавати іншим функціям та використовувати в функціональному програмуванні для роботи з колекціями даних.
Приклад
my_lambda = lambda { |x, y| x + y }
puts my_lambda.call(2, 3)
yield
використовується всередині методу для передачі керування блоку коду, який був переданий цьому методу як аргумент.- Коли метод викликається з блоком,
yield
виконує цей блок всередині методу. yield
дозволяє передавати дані з викликаючого методу в блок коду.
Приклад
def my_method
puts "Початок методу"
yield if block_given?
puts "Кінець методу"
end
my_method do
puts "Усередині блоку"
end
Отже, основна різниця між лямбда-функціями та yield
в Ruby полягає в тому, що лямбда-функції є об’єктами функцій, які можна передавати та викликати незалежно, тоді як yield
використовується для передачі керування блоку коду всередині методу.