Скажем, у меня есть такая иерархия классов:
abstract class Expr
case class Var(name: String) extends Expr
case class ExpList(listExp: List[Expr]) extends Expr
Было бы лучше определить конструктор ExpList
следующим образом:
case class ExpList(listExp: Expr*) extends Expr
Я хотел бы знать, каковы недостатки/преимущества каждого определения в отношении соответствия шаблонов?