Ruby
Теория: Блоки внутри функции
Полный доступ к материалам
Написать в Ruby функцию, которая принимает блок, не так страшно, как
может показаться на первый взгляд. В самом простом случае нужно знать
про одно ключевое слово – yield. Именно с его помощью происходит вызов
блока:
Как видно из примера выше, мы не управляем блоком явно. yield
автоматически получает доступ к блоку и вызывает его. Количество вызовов
yield может быть любым. Каждый вызов работает, как независимый вызов
блока:
yield можно воспринимать как вызов блока, который во многом ведет себя
как обычная функция. Например, если блок возвращает результат, то его же
вернет и yield.
Если блок содержит параметры, то они передаются в блок через yield,
как через вызов функции:
И, собирая все вместе, так выглядит реализация map() внутри:
Рекомендуемые программы
108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845

