Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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,我正在对冒号分隔的字符串进行一些模式匹配,如下所示: case s:String => s.split(":") match { case Array("foo","bar") => ... case Array("hello",_,_) => ... ... } 如何重新排列代码以将名称分配给s.split(“:”)返回的数组 我尝试了以下方法,但没有效果: case s:String => val x = s.split(":") match { c

我正在对冒号分隔的字符串进行一些模式匹配,如下所示:

case s:String => s.split(":") match {
  case Array("foo","bar") => ...
  case Array("hello",_,_) => ...
  ...
}
如何重新排列代码以将名称分配给
s.split(“:”
)返回的数组

我尝试了以下方法,但没有效果:

case s:String => val x = s.split(":") match {
  case Array("foo","bar") => // try to use x here
  ...
}

我会添加一个
案例数组(f,“bar”)=>…
来显示您也可以在匹配的模式中分配VAL。
case s:String => s.split(":") match {
  case x @ Array("foo","bar") => ...
  case x @ Array("hello",_,_) => ...
  ...
}
case s:String =>
  val x = s.split(":")
  x match {
    case Array("foo","bar") => ...
    case Array("hello",_,_) => ...
    case Array(aStr, "bar") => println(aStr.toUpperCase)
    ...
}