Ich habe gesehen, wie man verschiedene Möglichkeiten in Scala benutzt, um einen Wert aus einem Wrapper wie Option oder einer Liste oder anderen Sammlungen zu ziehen. Wenn ich eine List[Int]
aus einer Option
ziehen und dann darauf iterieren muss, kann dies in einem für Block getan werden?Wie zwei Arten des Verständnisses in Scala zusammenführen?
z.
val l: Option[List[Int]] = Some(List(1,2,3,4))
l: Option[List[Int]] = Some(List(1, 2, 3, 4))
for{
li <- l // li taken out from Option wrapper
number <- li // numbers pulled from li
} yield number*2
cmd7.scala:3: type mismatch;
found : List[Int]
required: Option[?]
number <- li
^
Wenn ich das richtig verstanden, will es jeder Eintrag ein Option
sein. Gibt es eine Möglichkeit, diesen Effekt ohne zwei for-Schleifen zu erreichen?