我有一个将Option [Int]转换为字符串的API。我想将其转换回Option [Int]。在Scala中执行此操作的最佳方法是什么?
val x = Some(1)
val y = x.toString
val z: Option[Int] = ??? // Expected value is Some(1) from y
答案 0 :(得分:2)
在Scala 2.13中
y match {
case s"Some($x)" => x.toIntOption
case _ => None
}
在Scala 2.12中
val someInt = """Some\((\d+)\)""".r
y match {
case someInt(x) => Try(x.toInt).toOption
case _ => None
}