Некоторые записи списка не соответствуют шаблону из-за условия n1 != 2
.Очевидно, (2,(1,aa))
не удовлетворяет этому условию.Таким образом, вы получаете ошибку соответствия.У вас есть по крайней мере два очевидных способа исправить это.
Первая возможность: используйте for-yield
, что приведет к десагару в map
и withFilter
:
for ((n1, (n2, st)) <- days; if(n1!=2) ) yield s"st = $st"
Вторая возможность: использоватьcollect
:
val r2 = days collect {
case (n1, (n2, st)) if(n1!=2) => s"st = $st"
}
Оба результата:
List(st = a, st = b, st = c)
List(st = a, st = b, st = c)