什么是A => A = a => scala中的平均值

Jay*_*Jay 1 syntax scala

我在scala中找到了以下语法,我不明白

object Category {
    def id[A]: A => A = a => a
}
Run Code Online (Sandbox Code Playgroud)

特别是这部分A = a => a

谁可以用更易读的语法翻译

Jes*_*per 9

这一行:

def id[A]: A => A = a => a
Run Code Online (Sandbox Code Playgroud)

定义一个名为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
Run Code Online (Sandbox Code Playgroud)