Почему zip не работает со случаем соответствия в Scala?

John Hass спросил: 03 февраля 2018 в 11:42 в: scala

Я хочу закрепить два списка и выполнить сопоставление шаблонов, но кажется, что zip и match производят ошибку. Я не знаю, почему возникает такая ошибка.

Следующий пример - упрощенная версия.

Это работает

val l = List((1, 2), (3, 4), (5, 6))
l.map { case(a, b) => println(s"First is $a, second is $b") }

Это не работает

val l1 = List(1,2,3)
val l2 = List(4,5,6)
l1.zip(l2)
l1.zip(l2).map { case(a, b) => a match {case 1 => println(s"First is $a, second is $b") }}

Информация об ошибке

scala.MatchError: 2 (of class java.lang.Integer)
  at .$anonfun$res15$1(<console>:14)
  at .$anonfun$res15$1$adapted(<console>:14)
  at scala.collection.immutable.List.map(List.scala:287)
  ... 28 elided

0 ответов