Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何安全地拆分字符串并检查两个值_Scala - Fatal编程技术网

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)