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