Kann nicht für das Verständnis verwendet werden, um über Liste in Zukunft abzubilden

Ich habe dieses Problem, das ich jedes Mal umgehen muss. Ich kann etwas, das in einer Zukunft enthalten ist, nicht mit a für das Verständnis abbilden.

Beispiel:

import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future

val f = Future( List("A", "B", "C") )
for {
  list <- f
  e <- list
} yield (e -> 1)

Dies gibt mir den Fehler:

 error: type mismatch;
 found   : List[(String, Int)]
 required: scala.concurrent.Future[?]
              e <- list
                ^

Aber wenn ich das tue, funktioniert es gut:

f.map( _.map( (_ -> 1) ) )

Sollte ich nicht in der Lage sein, dies mithilfe von a für das Verständnis zu tun, funktioniert dies in meinem anderen Beispiel aus dem Grund, dass ich keine Flatmap verwende? Ich benutze Scala 2.10.0.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage