Scala,如何隐式使用Option中的Some(value)?

时间:2013-09-13 01:02:21

标签: scala

我有一段代码从请求正文中提取字符串,但它可能不存在,所以它是Option[String]。如果有值,那么我希望隐含地使用它。

要进行此转换,我会写implicit val code = googleCode

有没有办法让googleCode成为隐式字符串,以便我可以直接使用它,而不是创建值为implicit val的{​​{1}}?

googleCode

请注意,代码段来自Playframework Controller,但这通常是Scala语言的问题

2 个答案:

答案 0 :(得分:6)

通常建议避免使用与选项的模式匹配。这是你如何写它:

request.getQueryString("code") map { implicit googleCode =>
  // googleCode is an implicit String! do something with it
} getOrElse {
  // handle the None case
}

答案 1 :(得分:0)

嗯。我建议采取这三个简单的步骤,而不是寻找使用Option将代码转换为某种Java的解决方案。

步骤1.为你做最短的事情,比如option.get(),任何东西,这样你的代码(种类)就可以了。 第2步。学习函数式编程。具体来说,学会以惯用语,特别是FP风格的方式使用Option。 第3步。利润。你将从学习中受益匪浅。