假设我们有一个Option [String],如果那里有Some(字符串),我们想把它变成Int到.toInt。我会做以下事情:
val foo: Option[String] = Some("5")
val baz: Option[Int] = foo match {
case Some(thing) => Some(thing.toInt)
case None => None
}
这很有效。然而,它看起来非常冗长,并且像很多工作一样。有人能告诉我一个更简单的方法吗?
谢谢!
答案 0 :(得分:16)
似乎您需要map
:
val baz = foo map (_ toInt)
Option
类型支持许多集合操作(如map
,filter
等)以及许多很有用的函数。看看scaladoc:
http://www.scala-lang.org/api/rc/scala/Option.html
此备忘单也很有帮助:
答案 1 :(得分:10)
您需要的只是foo.map(_.toInt)