Лямбда и Proc
В прошлом уроке мы познакомились с такой конструкцией как блок кода, который позволяет нам передать запись похожую на объявление метода в другой метод. В этом мы поговорим как мы можем сохранить метод в переменную не выполняя его.
Proc
Для того чтобы записать метод в переменную можно воспользоваться Proc
Лямбда
А теперь самое интересное, лямбда - потомок Proc. По функционалу они практически не отличаются друг от друга, лишь с двумя отличиями:
Лямбда проверяет количество аргументов, которые в нее передаются, Proc — нет
return
в лямбде, завершает выполнение кода внутри нее,return
в проке остановливает выполнение метода
Количество аргументов
Proc игнорирует это
return
резюме
Proc и лямбда объекты, блоки — нет.
Блок может существовать только как аргумент функции.
В функцию можно передать только один блок.
Лямбды проверяют количество аргументов,
Proc
— нет.Проки прерывают выполнение функции при вызове
return
, лямбды — нет.
Last updated