Добро пожаловать на SO, Ракель.
Проблема в вашем коде заключается в том, что это
position match {
case Some(value) => value
case None => series.length - 1
}
является выражением, которое не изменяет значение position
, что, вероятно, что вы могли предположить.
Вы должны связать значение, созданное выражением, чтобы использовать его в коде под ним:
val positionWithDefault =
position match {
case Some(value) => value
case None => series.length - 1
}
for (i <- positionWithDefault until series.length) {
...
}
Кроме того, как отмечено в комментарии, поведение выражение match
такое же, как и у getOrElse
for (i <- position.getOrElse(series.length - 1) until series.length) {
...
}