November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy zamknąć pewien fragment kodu w języku Ruby w formę bloku, który będziemy później wielokrotnie wywoływać.
W trakcie dotychczasowej lektury wielokrotnie spotykaliśmy się z blokami zamkniętymi w nawiasy klamrowe. Bloki takie nie są jednak bytami samoistnymi:
aBlock = { |x| puts x } # ŹLE!
# SyntaxError: compile error
W języku Ruby bloki mają rację bytu wyłącznie jako argumenty wywoływania metod. Istnieje jednak kilka sposobów przekształcania bloków w obiekty — najczęściej wykorzystywanym i zalecanym jest użycie metody lambda[46]:
aBlock = lambda { |x| puts x } # DOBRZE
W celu wywołania bloku, z którego utworzono obiekt, należy użyć metody call:
aBlock.call "Witajcie!" ...