[SCALA] 이 스칼라 변수로 튜플 할당을 할 수 있습니까? [복제]
SCALA이 스칼라 변수로 튜플 할당을 할 수 있습니까? [복제]
스칼라에서, 하나는 튜플에 여러 변수 할당을 통해 수행 할 수 있습니다
val (a, b) = (1, 2)
그러나 변수에 할당 유사한 구문은 작업에 표시되지 않습니다. 예를 들어 나는이 일을하고 싶습니다 :
var (c, d) = (3, 4)
(c, d) = (5, 6)
나는 여러 변수 할당에 C와 D를 다시 사용하고 싶습니다. 이것이 가능한가?
해결법
-
==============================
1.이것은 "여러 변수 할당"단순히 아니라, 완전히 기능을 갖춘 패턴 매칭입니다!
이것은 "여러 변수 할당"단순히 아니라, 완전히 기능을 갖춘 패턴 매칭입니다!
다음 그래서 모두 유효합니다 :
val (a, b) = (1, 2) val Array(a, b) = Array(1, 2) val h :: t = List(1, 2) val List(a, Some(b)) = List(1, Option(2))
이 새로운 이름으로 그 부분 패턴 매칭 작은 부분으로,이 드 구조를 것 뭔가를 작동하는 방식이며, 바인드. 지정된대로, 패턴 매칭을 참조 기존 사전에 결합하지 않을 것이다, 당신이 직접해야 할 것입니다.
var x: Int = _ var y: Int = _ val (a, b) = (1, 2) x = a y = b // or (1,2) match { case (a,b) => x = a; y = b case _ => }
-
==============================
2.나는이 가능 당신이 원하는 생각하지 않는다, 그러나 당신은 "마법의"업데이트 방법과 매우 유사 뭔가를 얻을 수 있습니다.
나는이 가능 당신이 원하는 생각하지 않는다, 그러나 당신은 "마법의"업데이트 방법과 매우 유사 뭔가를 얻을 수 있습니다.
case class P(var x:Int, var y:Int) { def update(xy:(Int, Int)) { x = xy._1 y = xy._2 } } val p = P(1,2) p() = (3,4)
from https://stackoverflow.com/questions/6196678/is-it-possible-to-have-tuple-assignment-to-variables-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 슈퍼 클래스와 케이스 클래스 복사 '방법' (0) | 2019.11.20 |
---|---|
[SCALA] 스칼라 : 지능 또는 없음으로 변환 문자열 (0) | 2019.11.20 |
[SCALA] 객체를 확장 할 수있는 방법이 있습니까? (0) | 2019.11.20 |
[SCALA] 스파크 DataFrame 그룹화 데이터의 표준 편차를 계산 (0) | 2019.11.20 |
[SCALA] 갱신 후 해결되지 않은 의존성 SBT 0.13.0 (0) | 2019.11.20 |