Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: lambda, proc, anonymous function

Что такое 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

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

#lambda

#proc

#anonymous function

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