У многих катанье на коньках производит одышку и трясение (К. Прутков).

Ruby – Блоки

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Язык программирования Ruby
Вы видели, как Ruby определяет методы, в которых вы можете поместить несколько операторов, а затем вы вызываете этот метод. Аналогично, Ruby имеет концепцию Block.

  • Блок состоит из кусков кода.
  • Вы назначаете имя блоку.
  • Код в блоке всегда заключен в фигурные скобки ({}).
  • Блок всегда вызывается из функции с тем же именем, что и блок. Это означает, что если у вас есть блок с тестом имен, то вы используете функцию test для вызова этого блока.
  • Вы вызываете блок с помощью оператора yield.

Синтаксис

 

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

Заявление yield

Давайте посмотрим на пример оператора yield:

 

Это приведет к следующему результату:

 

Вы также можете передавать параметры с помощью инструкции yield. Вот пример:

 

Это приведет к следующему результату:

 

Здесь оператор yield записывается с последующими параметрами. Вы даже можете передать несколько параметров. В блоке вы переносите переменную между двумя вертикальными линиями (||), чтобы принять параметры. Поэтому в предыдущем коде оператор 5 выводит значение 5 в качестве параметра тестового блока.

Теперь рассмотрим следующее утверждение:

 

Здесь значение 5 принимается в переменной i . Теперь обратите внимание на следующий оператор puts:

 

Результатом этого оператора puts является:

 

Если вы хотите передать несколько параметров, то инструкция yield указывается так:

 

и блок:

 

Параметры будут разделены запятыми.

Блоки и методы

Вы видели, как блок и метод могут быть связаны друг с другом. Обычно вы вызываете блок, используя оператор yield из метода, который имеет то же имя, что и у блока. Поэтому вы пишете:

 

Этот пример является самым простым способом реализации блока. Вы вызываете тестовый блок, используя оператор yield.

Но если последнему аргументу метода предшествует &, то вы можете передать блок этому методу, и этот блок будет назначен последнему параметру. В случае, если и * и & присутствуют в списке аргументов, & должны появиться позже.

 

Это приведет к следующему результату:

Блоки BEGIN и END

Каждый исходный файл Ruby может объявлять блоки кода, которые будут выполняться при загрузке файла (блоки BEGIN) и после завершения программы (блоки END).

 

Программа может включать несколько блоков BEGIN и END. Блоки BEGIN выполняются в том порядке, в котором они встречаются. Блоки END выполняются в обратном порядке. При выполнении вышеуказанной программы получается следующий результат:

тит

Читайте также

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close