Задача · Интерфейсы · урок 9 из 10
Задача: общая площадь
Интерфейс Shape с методом Area() float64 и реализующие его типы Rect и Circle уже объявлены. Напишите функцию func totalArea(shapes []Shape) float64, которая возвращает сумму площадей всех фигур среза. Фигуры могут быть любых типов, реализующих Shape, а не только Rect и Circle.
r := Rect{Width: 2, Height: 3},sq := Rect{Width: 1, Height: 1}, затемtotalArea([]Shape{r, sq})→7c := Circle{Radius: 1}, затемtotalArea([]Shape{c})→3.141592653589793totalArea(nil)→0
Ограничения: одна и та же фигура может встретиться в срезе несколько раз, и функция учитывает её каждый раз; срез может быть пустым или равным nil, тогда сумма 0; тесты сравнивают результат с точностью до 1e-9.
Не добавляйте лишних импортов, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.