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.