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)
...
}