0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Написать в Ruby функцию, которая принимает блок, не так страшно, как может показаться на первый взгляд. В самом простом случае нужно знать про одно ключевое слово - yield. Именно с его помощью происходит вызов блока:</p>
1
<p>Написать в Ruby функцию, которая принимает блок, не так страшно, как может показаться на первый взгляд. В самом простом случае нужно знать про одно ключевое слово - yield. Именно с его помощью происходит вызов блока:</p>
2
<p>Как видно из примера выше, мы не управляем блоком явно. yield автоматически получает доступ к блоку и вызывает его. Количество вызовов yield может быть любым. Каждый вызов работает, как независимый вызов блока:</p>
2
<p>Как видно из примера выше, мы не управляем блоком явно. yield автоматически получает доступ к блоку и вызывает его. Количество вызовов yield может быть любым. Каждый вызов работает, как независимый вызов блока:</p>
3
<p>yield можно воспринимать как вызов блока, который во многом ведет себя как обычная функция. Например, если блок возвращает результат, то его же вернет и yield.</p>
3
<p>yield можно воспринимать как вызов блока, который во многом ведет себя как обычная функция. Например, если блок возвращает результат, то его же вернет и yield.</p>
4
<p>Если блок содержит параметры, то они передаются в блок через yield, как через вызов функции:</p>
4
<p>Если блок содержит параметры, то они передаются в блок через yield, как через вызов функции:</p>
5
<p>И, собирая все вместе, так выглядит реализация map() внутри:</p>
5
<p>И, собирая все вместе, так выглядит реализация map() внутри:</p>
6
6