阅读 Scalaz 和 Cats 的文档,我注意到他们经常在通用/多态领域中使用
=>
。例如,在 applicatives 的 scalaz 页面上,ap
有以下定义:
override def ap[A, B](fa: ZipList[A])(f: ZipList[A => B]): ZipList[B] =
ZipList((fa.value zip f.value).map(t => t._2(t._1)))
现在,我想了解了
=>
在地图中的使用,这里它充当 lambda 的一部分,我可以猜测第一行的 =>
正在添加 A
和 B
的要求是为了一个函数。但我似乎找不到任何文件证实这一点。
那么,当在 Scala 中的泛型/多态字段定义中使用
=>
的目的是什么?
A => B
与 Function1[A, B]
相同,这是一个接受 A
并返回 B
的函数。