:パターンマッチングを使用して複数の変数を取得するにはどうすればよいですか?たとえば
List(1,2,3,4) match {
case List(x: Int, y: Int, *rest) =>
println(rest) // i want to get List(3,4)
}
_*
試合複数の変数ことができますが、キャプチャそれらのことができるようにように見えるために行います。
ありがとうございます!
:パターンマッチングを使用して複数の変数を取得するにはどうすればよいですか?たとえば
List(1,2,3,4) match {
case List(x: Int, y: Int, *rest) =>
println(rest) // i want to get List(3,4)
}
_*
試合複数の変数ことができますが、キャプチャそれらのことができるようにように見えるために行います。
ありがとうございます!
あなたはこのためにrest @ _*
を使用することができます。これは一般的であることを
List(1,2,3,4) match {
case List(x: Int, y: Int, rest @ _*) =>
println(rest)
}
注:あなたが与えることx @ pattern
を使用することができますx
をpattern
と一致する任意の値に設定します(ただし、この値には適切な型があります)。 http://scala-lang.org/files/archive/spec/2.11/08-pattern-matching.html#pattern-bindersを参照してください。
List(1, 2, 3, 4) match {
case _ :: _ :: tail => println(tail) // prints List(3, 4)
}
あなたは、単に短所演算子でリストを一致させることができます。
List(1, 2, 3, 4) match {
case x :: y :: rest => println(rest)
} // gives you "List(3, 4)" to stdout
でもそれを行うには良い方法です。ありがとう! –
リスト上のパターンマッチングを起動する別の方法は、
x: Int = 1
y: Int = 2
rest: Seq[Int] = List(3, 4)
'リスト(1,2,3,4)一致{ケースを抽出
ele1 :: ele2 ::休止= > {}} ' –