8.12. Symulowanie argumentów zawierających słowa kluczowe

Problem

Funkcja lub metoda może akceptować wiele opcjonalnych argumentów wywołania. Chcielibyśmy pozwolić użytkownikom naszych metod na przekazywanie tylko tych argumentów, które reprezentują wielkości istotne w konkretnym przypadku. W języku Python lub Lisp da się to łatwo osiągnąć za pomocą parametrów o postaci <słowo_kluczowe> =<wartość>; niestety, składnia języka Ruby takich konstrukcji nie przewiduje.

Rozwiązanie

Konstrukcje <słowo_kluczowe> =<wartość> można jednak symulować za pomocą haszów zawierających mapowania w postaci <słowo_kluczowe> => <wartość>. Przeglądając hasz, można łatwo zobaczyć, które słowa kluczowe zostały w nim użyte.

def fun_with_text(text, args={}) ...

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.