Perché questa costruzione causa un errore di mancata corrispondenza di tipo in Scala?Tipo non corrispondente su Scala per la comprensione
for (first <- Some(1); second <- List(1,2,3)) yield (first,second)
<console>:6: error: type mismatch;
found : List[(Int, Int)]
required: Option[?]
for (first <- Some(1); second <- List(1,2,3)) yield (first,second)
Se posso passare il Alcuni con la Lista compila bene:
for (first <- List(1,2,3); second <- Some(1)) yield (first,second)
res41: List[(Int, Int)] = List((1,1), (2,1), (3,1))
Questo funziona anche bene:
for (first <- Some(1); second <- Some(2)) yield (first,second)
Quale risultato ti aspettavi che Scala restituisse nell'esempio negativo? –
Quando stavo scrivendo pensavo di ottenere un'opzione [Elenco [(Int, Int)]]. –