У меня есть набор классов case, таких как
abstract class Shape
case class Rectangle(width: Int, height: Int) extends Shape
case class Location(x: Int, y: Int, shape: Shape) extends Shape
case class Circle(radius: Int) extends Shape
case class Group(shape: Shape*) extends Shape
где в основном группа представляет собой массив форм. Мне нужно определить метод размера для вычислений размеров для прямоугольника, круга и местоположения его простота просто возвращает один. Но у меня проблемы с Группой.
object size extends Shape{
def size(s: Any) : Int = s match {
case Rectangle(x,y) => 1
case Group // how to do it? Also having case Group(shape : Shape*) gives an error
case Circle(r) => 1
case Location(x,y,shape) => 1
}
}
Я знаю, что для группы мне нужно использовать карту и свернуть влево, но я действительно не могу создать для нее логику. Благодаря