Tại sao việc xây dựng này gây ra lỗi Loại không phù hợp trong Scala?Loại không khớp trên Scala Để hiểu rõ
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)
Nếu tôi chuyển Một số với danh sách nó biên dịch tốt:
for (first <- List(1,2,3); second <- Some(1)) yield (first,second)
res41: List[(Int, Int)] = List((1,1), (2,1), (3,1))
này cũng hoạt động tốt:
for (first <- Some(1); second <- Some(2)) yield (first,second)
Bạn mong đợi kết quả nào của Scala trong ví dụ không thành công? –
Khi tôi viết nó, tôi nghĩ tôi sẽ nhận được một Option [List [(Int, Int)]]. –