我在
github上的
this代码中发现了一个奇怪的类型:
final class StaticRouteB[Page,O](private val f: (=> Action[Page]) => O) extends AnyVal { def ~>(a: => Action[Page]): O = f(a) }
> f的类型.这是什么意思 ?我的猜测是它是一个带名字参数调用的函数.从来没有见过它,所以我不确定它是什么或这个东西是如何工作的.
>有没有办法将这种类型翻译成更“标准”的东西? (我的意思是上面的代码,所以它不使用(=> Action [Page])=> O)类型?这种类型只是一些语法糖?)
>我特别想知道,如果我通过Action [Page] =>会发生什么?创建StaticRouteB时O为f?我会收到编译错误吗?运行时错误?为什么?我的意思是,(=> …)的目的是什么?如果没有传递正确的函数或改变f参数的评估策略,是否会产生编译错误?我的意思是为什么有人想要这样的类型?出于什么目的?