Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: block, yield, closure, method

Что такое блок? Что такое yield? Можно ли передавать блоки в методы? Каким образом?

Вопрос проверяет понимание блоков, механизма их передачи и использования в методах.

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

Блок в Ruby — это анонимный кусок кода, который передается методу. Он может быть вызван с помощью yield. Блоки можно передавать в методы через символ & в параметрах.

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

Блок — это кусок кода, переданный методу. Блоки записываются между {} или do...end. Их часто используют для передачи логики в методы.

Пример с yield:

def example
  	yield if block_given?
end

example { puts "Hello from block!" } # => Hello from block!

Блоки могут принимать аргументы:

def example
  	yield(42)
end

example { |num| puts num } # => 42

Для передачи блока в метод используют параметр с &:

def example(&block)
  	block.call
end

example { puts "Hello, block with &!" } # => Hello, block with &!

Разница между блоками и другими объектами, такими как Proc, в том, что блок не является объектом, пока его явно не преобразуют.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Ruby

    Ruby

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

#block

#yield

#closure

#method

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