Курс Raku / Додаток 🆕 / Типи та текстові машини / Об’єкти та класи / Вправи
Фігури зі спільною роллю
Завдання
Означте роль Shape, що вимагає методу area,
а потім створіть класи Circle та Square, що
виконують цю роль.
Напишіть підпрограму describe, чий параметр
типізовано як Shape, щоб вона приймала будь-яку
фігуру й відмовляла всьому, що фігурою не є. Вона має друкувати площу
фігури, підписану іменем її класу. Викличте її для кола радіуса
2 та квадрата зі стороною 3.
Підпрограма ніколи не перевіряє, який саме різновид фігури вона
отримала: оскільки її параметр є Shape, об’єкт гарантовано
має метод area, тож той самий виклик .area
працює з будь-якою фігурою, що надійде. Ось що дає вам роль — єдиний
тип, який можна вимагати, і один шматок коду, що однаково поводиться з
кожним класом, який його виконує.
Приклад
Програма друкує:
Circle: 12.56636
Square: 9Рішення
Навігація курсом
← Розв’язання: Банківський рахунок | Розв’язання: Фігури зі спільною роллю →