Size: a a a

Scala User Group

2019 December 22

V

V in Scala User Group
non-variable type argument is unchecked since it is eliminated by erasure
источник

DZ

Dmitry Zuev in Scala User Group
V
trait A
case object B extends A
case object C extends A

def logic(x: Seq[_ <: A]) = x match {
 case Seq[B] => doB()
 case Seq[C] => doC()
}
def logic[C <: A](x: Seq[C])
источник

SD

Sergey Dmitriev in Scala User Group
Сделай
x.map({
 Case b => dob()
...
})
источник

DZ

Dmitry Zuev in Scala User Group
V
trait A
case object B extends A
case object C extends A

def logic(x: Seq[_ <: A]) = x match {
 case Seq[B] => doB()
 case Seq[C] => doC()
}
Но метч не будет работать из-за type erasure
источник

DZ

Dmitry Zuev in Scala User Group
Кароч этот код плох всем
источник

DZ

Dmitry Zuev in Scala User Group
Какую проблему решаете?
источник

V

V in Scala User Group
книверсальный метод logic еоторый бы работал для люього A
источник

DZ

Dmitry Zuev in Scala User Group
Зачем метчите Seq?
источник

V

V in Scala User Group
хочу нруппировать А по типам
источник

V

V in Scala User Group
и обрабатывать группы А
источник

DZ

Dmitry Zuev in Scala User Group
Для этого нужен foldLeft
источник

λ

λoλdog in Scala User Group
V
книверсальный метод logic еоторый бы работал для люього A
Ну так и напиши там просто A
источник

λ

λoλdog in Scala User Group
Dmitry Zuev
Для этого нужен foldLeft
Не поможет из-за того же erasure
источник

DZ

Dmitry Zuev in Scala User Group
V
хочу нруппировать А по типам
Для этого поможет
источник

V

V in Scala User Group
метод принимает Сек А, но любую реализацию А
источник

λ

λoλdog in Scala User Group
А, ну да. Может быть
источник

λ

λoλdog in Scala User Group
Фолдом можно
источник

V

V in Scala User Group
но всегда одну и ту же внутри кадлого Сек А
источник

V

V in Scala User Group
метод типа роутер, отправляет этот сек бкз изменений в другой метод, в зависимости какой подтип А внутри этого сека
источник

DZ

Dmitry Zuev in Scala User Group
Через тайпклассы сделайте
источник