7.3. Przypisywanie bloku kodowego do zmiennej

Problem

Tworzymy metodę, w której proste wywoływanie stowarzyszonego bloku kodowego za pomocą instrukcji yield jest niewystarczające. Chcielibyśmy mieć możliwość przypisania bloku do zmiennej i operować na tej zmiennej niezależnie, na przykład przekazując ją (w roli stowarzyszonego bloku kodowego) do innej wywoływanej metody.

Rozwiązanie

Należy do tworzonej metody przekazać blok kodowy pod postacią ostatniego parametru formalnego, poprzedzonego znakiem ampersanda (&). Znak ampersanda odróżnia w języku Ruby „zwykłe” parametry formalne od parametrów blokowych.

Przekazany do wywoływanej metody blok kodowy może być przekształcony w obiekt Proc, który następnie przypisany zostanie zmiennej. ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.