7.4. Bloki kodowe jako domknięcia: odwołania do zmiennych zewnętrznych w treści bloku kodowego
Problem
Chcemy współdzielić dostęp do zmiennych między metodami, chcemy także definiować bloki kodowe z udziałem zmiennych zewnętrznych.
Rozwiązanie
Ruby gwarantuje poprawną realizację odwołań do zmiennych w treści bloków kodowych. Oto metoda powodująca dodawanie pewnej wartości do każdego elementu tablicy.
def add_to_all(array, number) array.collect { |x| x + number } end add_to_all([1, 2, 3], 10) # => [11, 12, 13]
W ciele metody Enumerable#collect
zmienna number
jest niewidoczna, jest jednak dostępna w treści bloku kodowego, ponieważ była dla niego widoczna w momencie jego definiowania.
Dyskusja
Blok kodowy języka Ruby jest domknięciem ...
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.