A => A = a => a 在 Scala 中是什么意思
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
.
方法的 return 类型是 A => A
,它是:接受 A
和 return 一个 A
的函数。
=
:a => a
之后的部分是id
方法的主体。它是一个函数的函数文字,它接受一个值 a
和 return 相同的东西 a
.
您具体询问的部分:A = a => a
本身不是一个部分。 A => A
是方法的return类型id
,a => a
是方法体。就像任何其他方法一样,这两部分之间的 =
将方法声明与方法主体分开。
你可以这样写:
def id[A]: Function1[A, A] = a => a
这是一种方法,return 是一个函数,它接受一个 A
和 return 另一个 A
并且它是 return 的函数是一个identity
(你得到一个 A
类型的变量 a
而只是 return 它):
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
老实说,我不确定你在这里想要达到什么目的。
我在 scala 中发现了以下我不理解的语法
object Category {
def id[A]: A => A = a => a
}
特别是这部分A = a => a
谁能把它翻译成更易读的语法
这一行:
def id[A]: A => A = a => a
定义了一个名为 id
的方法,它有一个类型参数 A
.
方法的 return 类型是 A => A
,它是:接受 A
和 return 一个 A
的函数。
=
:a => a
之后的部分是id
方法的主体。它是一个函数的函数文字,它接受一个值 a
和 return 相同的东西 a
.
您具体询问的部分:A = a => a
本身不是一个部分。 A => A
是方法的return类型id
,a => a
是方法体。就像任何其他方法一样,这两部分之间的 =
将方法声明与方法主体分开。
你可以这样写:
def id[A]: Function1[A, A] = a => a
这是一种方法,return 是一个函数,它接受一个 A
和 return 另一个 A
并且它是 return 的函数是一个identity
(你得到一个 A
类型的变量 a
而只是 return 它):
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
老实说,我不确定你在这里想要达到什么目的。