Другой способ исследования - использование zipWithIndex
def printer(evenOdd: Int) {
val str = "1234"
str.zipWithIndex.foreach { i =>
i._2 % 2 match {
case x if x == evenOdd => print(i._1)
case _ =>
}
}
}
. В этом случае вы можете проверить результаты с помощью функции принтера
scala> printer(1)
24
scala> printer(0)
13
.zipWithIndex
занимает List
и возвращает кортежи элементов в сочетании с их индексом. Зная, что String
- это список Char
Глядя на str
scala> val str = "1234"
str: String = 1234
str.zipWithIndex
res: scala.collection.immutable.IndexedSeq[(Char, Int)] = Vector((1,0), (2,1), (3,2), (4,3))
Наконец, вам нужно только печатать, используя foreach
вместо map
более идеален, так как вы не ожидаете возврата значений