我有一段代码从请求正文中提取字符串,但它可能不存在,所以它是Option[String]
。如果有值,那么我希望隐含地使用它。
要进行此转换,我会写implicit val code = googleCode
。
有没有办法让googleCode
成为隐式字符串,以便我可以直接使用它,而不是创建值为implicit val
的{{1}}?
googleCode
请注意,代码段来自Playframework Controller,但这通常是Scala语言的问题
答案 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步。利润。你将从学习中受益匪浅。