为什么scala Collection.map与Try.map不一致?

前端之家收集整理的这篇文章主要介绍了为什么scala Collection.map与Try.map不一致?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
scala集合地图文档在地图函数上说这个:

Builds a new collection by applying a function to all elements of this
list.

所以它运行在集合中的每个项目上.

但尝试它说:

Maps the given function to the value from this Success or returns this
if this is a Failure.

因此它只在成功时运行,而我无法理解在失败时运行,我仍然可以打印它.为什么它与集合图界面不一致?我是否需要查看我使用的每个数据结构上的地图,并且可能会发现它的行为有所不同?

解决方法

任何monadic结构上的映射总是在“成功案例”上运行,即您感兴趣的数据.

在List中,“成功案例”由其元素表示,在Try by the Success案例中,在Future中相同,在Option中由Some案例表示.

列表也与其他列表略有不同,因为它没有真正的“失败案例”,如Try,Future或Option do(尽管你可以考虑Nil列表)

一般来说,你可以用这个术语来思考:无论何时你映射某些东西,你都要对容器所持数据的“成功案例”进行转换.

猜你在找的Scala相关文章