Описание тега for-comprehension
NoneFor-complation - это конструкция на языке Scala, позволяющая легко перебирать одну или несколько коллекций.
Прежде чем мы увидим несколько примеров for-complation, давайте сначала определим следующие списки:
val list1 = List("a", "b")
val list2 = List("c", "d")
val list3 = List("e", "f")
Теперь мы можем увидеть первый пример. Это императивная форма понимания. Он выполняет итерацию по каждому списку и для каждой комбинации выполняет оператор println:
for { x <- list1; y <- list2; z <-list3 } println(x+y+z)
Результат:
ace
acf
ade
adf
bce
bcf
bde
bdf
Второй пример - функциональная форма понимания. Он использует ключевое слово yield для создания и возврата списка:
for { x <- list1; y <- list2; z <-list3 } yield x+y+z
Результат:
List[String] = List(ace, acf, ade, adf, bce, bcf, bde, bdf)