6

次のように、コロンで区切られた文字列でパターン マッチングを行っています。

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

1 に答える 1

12
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)
    ...
}
于 2012-07-18T12:10:08.833 に答える