Ich versuche, für Comprehensions in Scala zu verstehen, und ich habe viele Beispiele, die ich irgendwie verstehen ...Scala für() vs für {}
Eine Sache, ich bin eine harte Zeit, Herauszufinden ist für() vs für {}. Ich habe beides ausprobiert, und es scheint, als könnte ich eine Sache in der einen machen, aber in der anderen bricht sie.
Zum Beispiel funktioniert das nicht:
def encode(number: String): Set[List[String]] =
if (number.isEmpty) Set(List())
else {
for (
split <- 1 to number.length
word <- wordsForNum(number take split)
rest <- encode(number drop split)
) yield word :: rest
}.toSet
jedoch, wenn Sie es {} ändern, tut es kompilieren:
def encode(number: String): Set[List[String]] =
if (number.isEmpty) Set(List())
else {
for {
split <- 1 to number.length
word <- wordsForNum(number take split)
rest <- encode(number drop split)
} yield word :: rest
}.toSet
Diese Beispiele aus einer Coursera Klasse ich bin nehmen. Der Professor erwähnte nicht das "Warum" in dem Video & Ich fragte mich, ob jemand anderes weiß.
Danke!
Vielen Dank für die wirklich gründliche Antworten - ich nicht die Notwendigkeit für {} mit mehreren vs einzelne Zeile Beispiele verbinden habe ich arbeitete durch. – anonygrits