特质是否扩展(A => B)特征扩展函数?

Jon*_*yer 13 scala

以下特征Parser[+T]是一个特性,它扩展了一个接受Input并返回a 的函数Result[T].

 trait Parser[+T] extends (Input => Result[T])
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

Did*_*ont 16

对.

Input => Result[T]是一个快捷方式Function1[Input, Result[T]].它有一个抽象方法

def apply(v1: Input) : Result[T]
Run Code Online (Sandbox Code Playgroud)

当定义时将是实际的功能实现.

Scala语法允许apply被调用的方法被静默调用,即对于某些表达式e,e(x1, ... xn)将被转换为e.apply(x1, ... xn)


Jam*_*Iry 6

几乎.它扩展了Function[Input, Result[T]]- Input作为参数的函数类型,并返回Result[T](不T)作为结果. Result[T]将有关成功解析的信息传递到解析T期间发生的错误或错误.