例如,
Vector(Some(1), Some(2), Some(3), None).flatMap{
n => n
}
产生 aVector(1, 2, 3)
而不是给出错误。正如我在其他语言中看到的那样,flatMap
当你有一个产生嵌套的映射器函数时使用它,所以我希望这是一个有效的flatMap
:
Vector(1, 2, 3).flatMap{
eachNum => Vector(eachNum)
}
如果我使用 a由于容器包装,我的映射器函数会产生一个Vector
会导致嵌套(即)。但是,将删除此嵌套并将其展平。当嵌套两个相同的单子时,这是有道理的。Vector(Vector(1), Vector(2), Vector(3), Vector(4))
map
flatMap
但是,我不明白如何将 aflatMap
与返回 an 的映射器函数一起使用Option
使 aVector[Option[Int]]
变为Vector[Int]
. 是否正在进行某种转变(我以前从未见过这种情况),有人可以解释一下并可能指出一些资源吗?
非常感谢