이 구조로 인해 Scala에서 유형 불일치 오류가 발생하는 이유는 무엇입니까?
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)
Some을 List로 전환하면 잘 컴파일됩니다.
for (first <- List(1,2,3); second <- Some(1)) yield (first,second)
res41: List[(Int, Int)] = List((1,1), (2,1), (3,1))
이것은 또한 잘 작동합니다.
for (first <- Some(1); second <- Some(2)) yield (first,second)