8.5. Przeciążanie metod
Problem
Chcemy zdefiniować dwie wersje metody o tej samej nazwie, różniące się zestawem argumentów.
Rozwiązanie
W danej klasie języka Ruby może istnieć tylko jedna metoda o określonej nazwie. Może ona być jednak wywoływana z różnym zestawem argumentów, który to zestaw można badać w trakcie jej wykonywania.
W poniższym fragmencie definiowana jest klasa Rectangle
, reprezentująca prostokąt. Jej obiekty można tworzyć w dwojaki sposób: podając dwa parametry oznaczające położenia wierzchołków lewego górnego i prawego dolnego albo podając trzy parametry: położenie lewego górnego wierzchołka, długość i szerokość. W treści metody initialize
łatwo jest rozróżnić te dwa przypadki.
# Konstruktor wywoływać można dwojako: ...
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.