Scala 如何安全地拆分字符串并检查两个值
如果我这样做,它会抛出一个异常:Scala 如何安全地拆分字符串并检查两个值,scala,Scala,如果我这样做,它会抛出一个异常: "".split('=')(1) 在scala中,是否有一种自动化的安全操作方法?可能的解决方案: s.split("=") match { case a@Array(_, _) => Some(a) case _ => None } 但通常你会添加一些逻辑: s.split("=") match { case Array(x, y) => Some(x.toInt * y.toDouble) cas
"".split('=')(1)
在scala中,是否有一种自动化的安全操作方法?可能的解决方案:
s.split("=") match {
case a@Array(_, _) =>
Some(a)
case _ =>
None
}
但通常你会添加一些逻辑:
s.split("=") match {
case Array(x, y) =>
Some(x.toInt * y.toDouble)
case _ =>
None
}
请注意,隐式转换后的Array
是从索引到值的部分函数。您可以提升
任何部分函数,这样,它将分别返回Some(value)
或None
,而不是一个值或一个异常(如果未在给定参数中定义)
scala> "".split('=').lift(1)
res0: Option[String] = None
scala> "a=b".split('=').lift(1)
res2: Option[String] = Some(b)