scala play动作中隐式参数请求的范围和好处?

时间:2013-07-23 00:37:44

标签: 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

现在......阅读其他stackoverflow答案: Implicit keyword before a parameter in anonymous function in Scala

似乎比使用隐含参数只是

的“语法糖”
 Action { request =>
   Ok("Got request [" + request + "]",request)  //with implicit request I avoid pass the request parameter...
  }

我的问题是:

1)是隐式参数的范围只有我的lambda的范围没有?... 2)我忽略了一些事情吗?...

阅读其他答案: When should I make methods with implicit argument in Scala?

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

我在没有隐式参数和定义的情况下重写了这段代码https://stackoverflow.com/a/5015161/340451,代码更具可读性和清晰度(更少隐含:D)...我知道隐式参数真正有用的有用案例(例如:akka) api)但我无法理解它的模式有多大用处,为什么必须使用...

谢谢!

1 个答案:

答案 0 :(得分:2)

1)是的,请求的范围在动作块

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

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