0Pricing
Ruby Academy · Урок

Блоки, Procs и Lambdas

Поймите, как Ruby работает с анонимными функциями с помощью блоков, Procs и Lambdas

«Блоки, Procs и Lambdas» — бесплатный урок Ruby Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 3 уроков всего.

Блоки, процедуры и лямбды

Блоки, процедуры и лямбды

Ruby предоставляет мощные способы работы с повторно используемыми фрагментами кода с помощью блоков, процедур и лямбд.

В этом уроке Вы научитесь эффективно использовать эти понятия.

Блоки, Procs и Lambdas — иллюстрация 1

Что такое блок

Что такое блок

Блок — это фрагмент кода, заключённый между do ... end или фигурными скобками { ... }.

[1, 2, 3].each do |num|
  puts num * 2
end

Однострочные блоки

Однострочные блоки

Для простых операций вместо do ... end можно использовать фигурные скобки {}.

[1, 2, 3].each { |num| puts num * 2 }

Передача блоков методам

Передача блоков методам

Блоки можно передавать таким методам, как each, map и times.

5.times { puts 'Hello, Ruby!' }

Что такое процедура

Что такое процедура

Процедура — это объект, который хранит блок кода и может быть выполнен позднее.

say_hello = Proc.new { puts 'Hello from Proc!' }
say_hello.call

Передача аргументов процедуре

Передача аргументов процедуре

Процедуры могут принимать аргументы так же, как методы.

square = Proc.new { |num| num * num }
puts square.call(4)

Что такое лямбда

Что такое лямбда

Лямбда похожа на процедуру, но выполняет более строгую проверку аргументов.

greet = ->(name) { puts "Hello, #{name}!" }
greet.call('Alice')

Различия между процедурами и лямбдами

Различия между процедурами и лямбдами

  • Процедуры игнорируют лишние аргументы, а лямбды требуют их точного соответствия.
  • Лямбды возвращают управление вызывающему методу, а процедуры завершают его немедленно.
proc_example = Proc.new { return 'Proc Exited' }
lambda_example = -> { return 'Lambda Executed' }

def test
  puts proc_example.call
  puts lambda_example.call
end

test

Поздравляем!

Поздравляем!

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

Далее Вы изучите ключевое слово yield и динамическую передачу блоков.

Блоки, Procs и Lambdas — иллюстрация 10

Часто задаваемые вопросы

Урок «Блоки, Procs и Lambdas» бесплатный?

Да — полный текст урока «Блоки, Procs и Lambdas» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 3 уроков всего.

Чему я научусь в уроке «Блоки, Procs и Lambdas»?

Поймите, как Ruby работает с анонимными функциями с помощью блоков, Procs и Lambdas Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ruby Academy?

Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Блоки, Procs и Lambdas»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ruby Academy?

Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Определение методов
  2. Блоки, Procs и Lambdas
  3. Yield и передача блоков
← Назад к Ruby Academy