[SCALA] 스칼라 @ 연산자
SCALA스칼라 @ 연산자
스칼라의 @ 연산자는 무엇입니까?
예를 들어, 스칼라의 블로그 게시물 공식 언어 처리에서, 파트 2는이 같은 뭔가가있다
case x @ Some(Nil) => x
해결법
-
==============================
1.그것은 하나의 변수에 일치하는 패턴을 결합 할 수 있습니다. 예를 들어, 다음 사항을 고려하십시오
그것은 하나의 변수에 일치하는 패턴을 결합 할 수 있습니다. 예를 들어, 다음 사항을 고려하십시오
val o: Option[Int] = Some(2)
당신은 쉽게 내용을 추출 할 수 있습니다 :
o match { case Some(x) => println(x) case None => }
그러나 당신이하지 일부의 내용을하지만, 옵션 자체를 원한 경우? 즉,이 달성 될 것입니다 :
o match { case x @ Some(_) => println(x) case None => }
그 @이 아니라 일치의 최상위 레벨에서, 모든 수준에서 사용할 수 있습니다.
-
==============================
2.@ 성공적으로 일치하는 패턴 또는 서브 패턴에 이름을 결합 할 수 있습니다. 패턴들은 패턴 매칭에 사용될 수있는 <의 좌측 - 지능형 속하고있는 destructuring의 assigments.
@ 성공적으로 일치하는 패턴 또는 서브 패턴에 이름을 결합 할 수 있습니다. 패턴들은 패턴 매칭에 사용될 수있는 <의 좌측 - 지능형 속하고있는 destructuring의 assigments.
scala> val d@(c@Some(a), Some(b)) = (Some(1), Some(2)) d: (Some[Int], Some[Int]) = (Some(1),Some(2)) c: Some[Int] = Some(1) a: Int = 1 b: Int = 2 scala> (Some(1), Some(2)) match { case d@(c@Some(a), Some(b)) => println(a, b, c, d) } (1,2,Some(1),(Some(1),Some(2))) scala> for (x@Some(y) <- Seq(None, Some(1))) println(x, y) (Some(1),1) scala> val List(x, xs @ _*) = List(1, 2, 3) x: Int = 1 xs: Seq[Int] = List(2, 3)
-
==============================
3.당신은 패턴의 최상위을 일치시킬 수 있습니다. 예:
당신은 패턴의 최상위을 일치시킬 수 있습니다. 예:
case x @ "three" => assert(x.equals("three")) case x @ Some("three") => assert(x.get.equals("three"))) case x @ List("one", "two", "three") => for (element <- x) { println(element) }
-
==============================
4.변수 @ 패턴과 일치하는 패턴은 패턴이 일치하는 경우는 패턴 매칭 값 변수 바인딩 할 때. 이 경우, 즉, x의 값은 그 경우의 일부 절 (닐) 될 것을 의미한다.
변수 @ 패턴과 일치하는 패턴은 패턴이 일치하는 경우는 패턴 매칭 값 변수 바인딩 할 때. 이 경우, 즉, x의 값은 그 경우의 일부 절 (닐) 될 것을 의미한다.
-
==============================
5.이는 일치하는 패턴으로 x의 값을 설정한다. (호출에 println을에서 당신이 결정할 수로) 귀하의 예제에서 x 따라서 일부 (무기 호) 것
이는 일치하는 패턴으로 x의 값을 설정한다. (호출에 println을에서 당신이 결정할 수로) 귀하의 예제에서 x 따라서 일부 (무기 호) 것
from https://stackoverflow.com/questions/2359014/scala-operator by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라에서 정규 표현식을 사용하는 방법 패턴 일치에? (0) | 2019.11.03 |
---|---|
[SCALA] 스칼라 함수의 일부인가 대 무두질 (0) | 2019.11.03 |
[SCALA] 지금까지 이해할 수없는 스칼라 매끄러운 방법 (0) | 2019.11.03 |
[SCALA] 의존하는 방법의 유형에 대한 몇 가지 매력적인 사용 사례는 무엇입니까? (0) | 2019.11.03 |
[SCALA] 비동기 JDBC 호출 할 수 있습니까? (0) | 2019.11.03 |