【发布时间】:2011-11-22 07:54:10
【问题描述】:
我可能在文档中遗漏了一些正确的东西,但我无法真正理解它 - 我一直在通过反复试验来自学 Scala。
给定一个函数f: A => C,执行以下转换的惯用方法是什么?
Either[A, B] -> Either[C, B]
Either[B, A] -> Either[B, C]
(如果我有两个这样的函数,并且想转换两边,我可以一次完成还是应该顺序应用两次成语?)
Option[A] -> Option[C]
(我感觉这应该以某种方式使用for (...) yield;我可能只是对此一无所知,当我看到答案时会觉得很傻)
究竟是Either的“投影”吗?
【问题讨论】:
-
从下面的评论中,您似乎将
Either与Pair、Tuple2混淆了。情况并非如此:Either只能包含 one 值。从某种意义上说,它类似于 C 中的union,只是你知道实际存储的是哪个成员。 -
我知道这一点,但我仍然对一个预测被混入其中感到困惑。我并没有真正表达清楚。