3

我一直在阅读 scalaz 镜头的源代码,您可以在https://github.com/scalaz/scalaz/blob/scalaz-seven/core/src/main/scala/scalaz/Lens.scala找到

第 303 行开始,有些函数返回@>[A,B]类型的值。这种类型是Lens的别名吗?从上下文和符号的形状来看,这对我来说是有意义的,这可能代表一束光线进入圆形透镜。

但是为什么其他函数返回Lens[A,B]而不是时髦的别名呢?我在文件和 Lens.scala 导入的文件中搜索了这个符号,但无济于事。

我在哪里可以找到@>的定义?

4

1 回答 1

4

是的,它是一个类型别名,并且大多数这些方便的类型别名——包括@>,但也包括类似的东西Reader,,State甚至Lens它本身,它是一个类型别名——存在LensFamily[...]包对象中。scalazcore/src/main/scala/scalaz/package.scala

A @> B在某些地方和其他地方使用的事实Lens[A, B]几乎可以肯定只是历史偶然和特定作者偏好的结果。

于 2013-01-03T21:39:45.967 回答