我了解 Scala 中的隐式参数和隐式转换,但今天第一次看到这一点:匿名函数中参数前面的隐式关键字:
Action { implicit request =>
Ok("Got request [" + request + "]")
}
隐式关键字在这里起什么作用?
网络上是否有资源可以详细描述用例?
这里有两个明显的特征。
First, request
实际上并不是方法调用中的参数。这是匿名函数的参数。匿名函数本身是方法调用的参数。
其次,在匿名函数中声明隐式参数可以方便地使您免于“强制”将 val 转换为隐式参数:
Action { request =>
implicit val r = request
Ok("Got request [" + request + "]")
}
我碰巧知道这是一个 Play 框架代码,但我不确定 Action 和 Ok 的签名是什么。我猜他们是这样的:
def Action(r:Request => Result):Unit
case class Ok(str:msg)(implicit r:Request)
再次强调,这纯粹是出于说明目的的猜测。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)