为什么我不能在Scala中从Option到List flatMap?

Gar*_*all 0 functional-programming scala

当我尝试

Some(1).flatMap(_ => List(2))

我明白了

 error: type mismatch;
 found   : List[Int]
 required: Option[?]
Run Code Online (Sandbox Code Playgroud)

但是做得Some(1).map(_ => List(2)).flatten很好.为什么我在第一种情况下遇到编译错误?

EEC*_*LOR 5

如果您确定列表中包含零个或一个元素,则可以执行以下操作:

option.flatMap(_ => list.headOption)
Run Code Online (Sandbox Code Playgroud)