Что такое lambda?

Вопрос проверяет понимание концепции lambda в Ruby и её применения для работы с кусками кода.

Короткий ответ

Lambda — это разновидность объекта Proc, который представляет собой блок кода с более строгим контролем аргументов. Она создаётся с помощью метода lambda или ->.

Длинный ответ

Lambda — это объект, представляющий собой анонимную функцию. Она позволяет сохранить блок кода для последующего выполнения. В отличие от обычного proc, lambda строго контролирует количество передаваемых аргументов и возвращение из метода.

 

Создание и использование lambda:

my_lambda = ->(x, y) { x + y }
puts my_lambda.call(2, 3) # => 5

 

Особенности lambda:

Проверяет количество переданных аргументов:

my_lambda = ->(x) { puts x }
my_lambda.call(1, 2) # Ошибка: wrong number of arguments

 

Возвращается из самой lambda, а не из метода, в котором она вызвана:

def test_lambda
  my_lambda = -> { return "Inside lambda" }
  puts my_lambda.call
  "Outside lambda"
end

puts test_lambda # => Inside lambda \n Outside lambda

 

Использование lambda полезно для создания компактных и переиспользуемых функций.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Ruby

Ключевые слова

Подпишись на Ruby Developer в телеграм