[SCALA] 스칼라에서 어떻게 튜플 값을 할당 할 수 있습니다?
SCALA스칼라에서 어떻게 튜플 값을 할당 할 수 있습니다?
나는 다음과 같은 일을 할 노력하고있어
var tuple = (1, "test")
tuple._2 = "new"
그러나이는 발에 대한 불평 컴파일되지 않습니다
해결법
-
==============================
1.당신은 튜플 값을 다시 할당 할 수 없습니다. 그들은 의도적으로 불변 위치 : 당신이 튜플을 만든 후에, 당신은 절대 변하지 않을 것이라고 확신 할 수 있습니다. 이것은 올바른 코드를 작성하기위한 매우 유용합니다!
당신은 튜플 값을 다시 할당 할 수 없습니다. 그들은 의도적으로 불변 위치 : 당신이 튜플을 만든 후에, 당신은 절대 변하지 않을 것이라고 확신 할 수 있습니다. 이것은 올바른 코드를 작성하기위한 매우 유용합니다!
하지만 당신은 다른 튜플을 어떻게해야할까요? 복사 방법이 들어오는 곳이다 :
val tuple = (1, "test") val another = tuple.copy(_2 = "new")
또는 당신은 정말 튜플을 포함하는 VAR를 사용하려면 :
var tuple = (1, "test") tuple = tuple.copy(_2 = "new")
당신이 정말로, 정말로 값을 개별적으로 변경하려는 경우 (당신이 그것을 필요로 할 때 당신이 튜플을 얻을 수 있도록 아마 암시 적 변환과) 다른 방법으로, 당신은 대신에 케이스 클래스를 사용할 수 있습니다 :
case class Doublet[A,B](var _1: A, var _2: B) {} implicit def doublet_to_tuple[A,B](db: Doublet[A,B]) = (db._1, db._2) val doublet = Doublet(1, "test") doublet._2 = "new"
-
==============================
2.당신은 당신이 VAR 회원, 등으로 케이스 클래스에서 수정해야하는 구성 요소를 래퍼 수 있습니다 :
당신은 당신이 VAR 회원, 등으로 케이스 클래스에서 수정해야하는 구성 요소를 래퍼 수 있습니다 :
case class Ref[A](var value: A) var tuple = (Ref(1), "test") tuple._1.value = 2 println(tuple._1.value) // -> 2
from https://stackoverflow.com/questions/7142838/in-scala-how-can-i-reassign-tuple-values by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 사용 사례 및 유형의 변수 유형의 패턴 예 (0) | 2019.11.22 |
---|---|
[SCALA] 스칼라 - 바운드 변수의 목록을 얻을? (0) | 2019.11.22 |
[SCALA] 스칼라에서 반복자를 병렬 (0) | 2019.11.22 |
[SCALA] 형 PARAMS을 지정하기위한이 스칼라 중위 구문의 이름은 무엇입니까? (0) | 2019.11.22 |
[SCALA] "시도 -과 - 자원 / 사용"에 대한 간단한 스칼라 패턴 (자동 자원 관리) (0) | 2019.11.22 |