Следующий код показывает ошибку несоответствия типов:Scala: индексированная Seq вместо списка в цикле
def f(arr:List[Int]): List[Int] =
for(num <- 0 to arr.length-1; if num % 2 == 1) yield arr(num)
Он говорит, что он нашел IndexedSeq
вместо List
. Следующие работы:
def f(arr:List[Int]): List[Int] =
for(num <- (0 to arr.length-1).toList; if num % 2 == 1) yield arr(num)
я использовал i <- a to b
в цикле раньше, но не видел эту ошибку раньше. Может кто-то объяснить, почему формат i <- a to b
здесь не может быть использован?
Вы можете пропустить точку с запятой. 'for (num <- 0 to arr.length-1 if num% 2 == 1) yield arr (num)' –
Удалено, спасибо, @TheArchetypalPaul – chengpohi