:패턴 일치를 사용하여 여러 변수를 캡처하는 방법은 무엇입니까? 예를 들어
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 @ _*
을 사용할 수 있습니다 당신은을주고 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 List(x: Int, y: Int, rest @ _*) =>
println(rest)
}
참고 :
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 :: 나머지 = > {}}' –