[英]What does A => A = a => a mean in scala
我在我不理解的scala中找到了以下语法
object Category {
def id[A]: A => A = a => a
}
特别是这部分A = a => a
谁可以用更易懂的语法翻译
这行:
def id[A]: A => A = a => a
定义一个名为id
的方法,该方法的类型参数为A
该方法的返回类型为A => A
,即:一个接受A
并返回A
的函数。
=
: a => a
之后的部分是id
方法的主体。 它的字面,需要一个值的函数等a
,并返回同样的事情a
。
您专门询问的部分: A = a => a
本身并不是一个部分。 A => A
是方法id
的返回类型,而a => a
是方法的主体。 就像任何其他方法一样,这两部分之间的=
将方法声明与方法主体分开。
您可以这样写:
def id[A]: Function1[A, A] = a => a
这是一种方法,该方法返回一个接受A
的函数并返回另一个A
的函数,并且它返回的函数是一个identity
(您将获得类型A
的变量a
并仅返回它):
scala> object Category {
| def id[A]: A => A = a => a
| }
defined module Category
scala> Category.id[Int]
res0: Int => Int = <function1>
scala> res0(0)
res2: Int = 0
坦白地说,您不确定要在这里实现什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.