Я написал черту для сортировки итераций в Scala, и создание класса, с которым я мог бы смешать его, заняло почти столько же времени, сколько и для написания черты.Почему было принято дизайнерское решение, запрещающее пользователям писать такие вещи, как:
new List[Int] with SuperAwesomeTrait[Int]?
Теперь, если я хочу сделать это, мне нужно сделать какой-то странный взлом, например,
class StupidList extends LinearSeq {
val inner = List()
/* reimplement list methods by calling into inner */
}
итогда
new StupidList[Int] with SuperAwesomeTrait[Int].