Unten ist der Code, den ich zu verstehen versuchen:Scala- Reißverschluss mit Futures
object Tryouts extends App{
val studentIds= Future{
List("s1","s2","s3")
}
val details = studentIds zip(Future{List("Tim","Joe","Fin")}).map(x=>x.tail)
details.foreach(println)
Thread.sleep(1000)
}
Das Problem:
val details = studentIds zip(Future{List("Tim","Joe","Fin")}).map(x=>x.tail)
hier, wenn Sie bemerken, ich bin kein mit "" vor dem zip und einfach einen platz geben. Ich vermute, dass . und Space funktioniert auf die gleiche Weise und validierte auch einige Stapelüberlauffragen. Der obige Ausdruck vor dem Anwenden einer Map führt zu einem Future [(List [String], List [String])]. also wenn ich sage
.map(x=x.tail) should show compilation error in IDE because tail operation can be applied only on list and not for tuple. But it is actually executing successfully.
The same statement when executed with "." before zip function like this:
val details = studentIds.zip(Future{List("Tim","Joe","Fin")}).map(x=>x.tail) the map(x=>x.tail) gives error.
was könnte der Grund sein?
Was Sie (und zu tun in Ihrer letzten Zeile) weglassen müssen, ist nicht die Klammern um 'Future', es ist der Punkt vor' map'. Andernfalls müssten Sie sie auch in 'map _.tail' auslassen. –