Scala 播放动作中隐式参数请求的范围和好处?

cla*_*ccs 5 scala playframework playframework-2.0

我可以理解如何使用隐式参数,但我怀疑它对 Scala 播放动作的必要性......在播放文档中出现这个:

It is often useful to mark the request parameter as implicit so it can be implicitely used by other APIs that need it
Run Code Online (Sandbox Code Playgroud)

现在...正在阅读其他 stackoverflow 答案: Scala 中匿名函数中的参数之前的隐式关键字

似乎在这里使用隐式参数只是一个“语法糖”

 Action { request =>
   Ok("Got request [" + request + "]",request)  //with implicit request I avoid pass the request parameter...
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是:

1) 隐式参数的范围只是来自我的 lambda 的范围吗?... 2) 我是否忽略了它的某些内容?...

阅读另一个答案: 我什么时候应该在 Scala 中创建带有隐式参数的方法?

似乎在这种情况下使用隐式参数是“过度使用” 3)不使用隐式参数的代码看起来如何以及我避免使用什么样板?

我重写了这段代码/sf/answers/351061301/没有隐式参数和定义,代码更易读和清晰(更少隐式:D)......我知道隐式参数非常有用的有用情况(例如:akka api)但我不明白它的模式有多大用处以及为什么必须使用...

谢谢!

Chr*_*unt 2

1)是的,请求的范围在action块内

2)抱歉,不明白这个问题

一般来说,您应该谨慎使用隐式。我们认为在这个特定的上下文中使用隐式来传递请求是合理的。