Scalaz 有asMA
方法,但没有asIdentity
方法。以下在 Scala 2.9.1 中产生编译错误,如下所示:
Some(0).max(None)
<console>:14: error: type mismatch;
found : None.type (with underlying type object None)
required: Ordering[?]
Some(0).max(None)
^
可以通过显式强制转换来修复:
(Some(0):Identity[Option[Int]]).max(None)
asIdentity
在我看来,如果存在的话,这会更优雅:
Some(0).asIdentity.max(None)