0
Как получить из итератора, как этогоScala - Преобразовать итератор в карту
val it = Iterator("one","two","three","four","five")
карту как
Map(four -> 4, three -> 5, two -> 3, five -> 4, one -> 3)
var m = Map[String, Int]()
while (it.hasNext) {
val cell = it.next()
m += (cell -> cell.length())
}
этого решения с использованием var
но Я бы хотел использовать переменную Nonutable и val
.
Если я использую for yield
заявление возвращения объекта будет Iterator[Map]
, и я не хочу, чтобы:
val m = for(i<- it if it.hasNext) yield Map(i->i.length())
Ваш 'for' версия очень странный. Вам не нужно 'if' -' for' уже обрабатывает это, и вы «даете» отдельную «карту» для каждой записи, а не только кортеж. '{для (i <- it) yield (i -> i.length)}. toMap' сделает это. –