小编bus*_*r84的帖子

我应该何时在Scala中使用隐式参数创建方法?

我使用scala中的play框架创建了代码,如下所示:

object Application extends Controller {
  def hoge = Action( implicit request =>
    val username = MyCookie.getName.get
    Ok("hello " + username)
  }
}

object MyCookie {
  def getName( implicit request: RequestHeader ) = {
    request.cookies.get("name").map(_.value)
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到了同事的代码审查.他说这个代码因隐式参数而无法读取.我无法回复他的意见.那么你能告诉我使用隐式参数的最佳方法是什么?我何时应该使用隐式参数?

scala implicit playframework-2.0

5
推荐指数
1
解决办法
1643
查看次数

选项[Map [String,String]]可以很奇怪地得到一个值

我发现Option[Map[String, String]]奇怪的作品是这样的:

 scala> val fileInfo: Option[Map[String, String]] = Some(Map( "type" -> "hoge" ))
 fileInfo: Option[Map[String,String]] = Some(Map(type -> hoge))

 scala> fileInfo.get("type")
 res1: String = hoge
Run Code Online (Sandbox Code Playgroud)

我认为Option"get"方法不会引起任何争论,所以这对我来说非常奇怪.它为什么有效?它是隐式转换还是错误?我想确定它是如何工作的.

我的规格是:

  • Scala版本2.9.2
  • Java 1.6.0_43

scala scala-collections

0
推荐指数
1
解决办法
668
查看次数