Интерфейс для геометрических фигур

Go Лёгкий interfaces

Задача «Интерфейс для геометрических фигур»

Создайте интерфейс Shape, который содержит метод Area() float64. Реализуйте структуры Circle (с полем Radius float64) и Rectangle (с полями Width, Height float64), которые удовлетворяют интерфейсу Shape. Напишите функцию PrintArea(s Shape), которая выводит площадь фигуры с точностью до двух знаков после запятой. В main считайте из stdin строку, содержащую тип фигуры ('circle' или 'rectangle') и её параметры (радиус для круга, ширину и высоту для прямоугольника). Вызовите PrintArea для соответствующей фигуры.

Формат ввода

Одна строка: сначала слово 'circle' или 'rectangle', затем числа (для circle — радиус, для rectangle — ширина и высота). Все числа — целые или с плавающей точкой.

Формат вывода

Одно число — площадь фигуры, округлённая до двух знаков после запятой.

Примеры

Пример 1

ВВОД
circle 5
ВЫВОД
78.54

Пример 2

ВВОД
7 ADD 1 handler1 ADD 1 handler2 FIRE 1 eventA ADD 2 handler3 FIRE 1 eventB REMOVE 1 handler1 FIRE 1 eventC
ВЫВОД

Пример 3

ВВОД
rectangle 3 4
ВЫВОД
12.00

Пример 4

ВВОД
5 ADD 5 procA ADD 5 procB FIRE 5 data1 REMOVE 5 procA FIRE 5 data2
ВЫВОД

Пример 5

ВВОД
circle 0
ВЫВОД
0.00
main.go