HTML Diff
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