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

时间:2014-08-31 16:34:16

标签: scala functional-programming

scala collection map文档在map函数上说明了这一点:

  

通过将函数应用于此所有元素来构建新集合   列表。

因此它会在集合中的每个项目上运行。

但尝试说:

  

将给定的函数映射到此成功的值或返回此值   如果这是一次失败。

所以它在success上运行 ,而我无法理解在failure上运行什么我仍然可以打印它。为什么它与集合图界面不一致?我是否需要查看map对我使用的每个数据结构的影响,并发现它的行为有所不同?

1 个答案:

答案 0 :(得分:7)

任何monadic结构的

map总是在“成功案例”上运作,即你感兴趣的数据在哪里。

List中,“{成功案例”由其Try案例SuccessFuture Option SomeList表示。 } Try案例。

Future与其他人没有什么不同,因为它确实没有“失败案例”,例如OptionNilmap(尽管您可以考虑{{1}}列表

一般来说,您可以用这个术语来思考:无论何时{{1}}某事物,您都会对容器所持数据的“成功案例”进行转换