В Ruby термін “анонімна функція” зазвичай відноситься до блоків, лямбда-функцій або об’єктів Proc. Основна ідея полягає в тому, що це шматок коду, який можна передавати методам як аргумент. Вони називаються “анонімними”, оскільки вони можуть бути визначені без прив’язки до конкретного імені.
Блоки в Ruby - це частка коду, яка визначається між ключовими словами do
та end
або в фігурних дужках {}
. Вони часто використовуються разом з методами, такими як each
або map
для обробки колекцій даних.
[1, 2, 3].each do |number|
puts number
end
Lambda-функції: Лямбда-функції є анонімними функціями, які можна присвоїти змінній. Вони визначаються за допомогою оператора ->
або ключового слова lambda
.
multiply_by_two = ->(number) { number * 2 }
puts multiply_by_two.call(5) # виведе 10
Proc. Об’єкти класу Proc
також можуть використовуватися як анонімні функції. Процедури можна визначити за допомогою Proc.new
або скоротити до proc
.
square = Proc.new { |x| x**2 }
puts square.call(3)
Зазначте, що блоки є основним механізмом для передачі коду методам в Ruby, а інші концепції, такі як лямбда та Proc, надають додаткові можливості для роботи з анонімними функціями.