Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정
Notepad96
·2020. 12. 2. 14:49
300x250
1. Val cannot be reassigned - Pair 값 수정
Kotlin 에서는 Pair와 Triple에 있는 프로퍼티는 val로 선언되어 Read-only 이다
따라서 수정이 가능한 Pair, Triple를 사용하기 위해서는 Kotlin 에서 지원하는 Pair와 Triple을 사용해서는 안된다.
대신 data class를 사용하여 새로운 구조를 정의 한다면 간단하고, 훨씬 더 유동적이게 마치 수정이 가능한 Pair을 만들 수 있다.
2. 코 드
환경 : Kotlin Version = 1.4.20, JVM
data class Pair2(var first:Int, var second: Double)
// data class Pair<T, U>(var first:Int, var second: Double)
fun main(args : Array<String>) {
var arr = List<Pair<Int, Double>>(4) { Pair<Int, Double>(0, 0.0) }
// arr[0].first++ // error : Val cannot be reassigned
var arr2 = List<Pair2>(4) { Pair2(0, 0.0) }
arr2[0].first++
arr2[1].second += 5
arr2[2].first = 100
arr2.forEach { println(it) }
}
- data class를 사용하여
Int타입의 var first
Double 타입의 var second
를 갖는 Pair2를 정의하였다.
var로 선언하였기 때문에 first, second 프로퍼티를 읽기 / 쓰기가 둘 다 가능하다.
이와 같은 방법을 사용하면 data class 이름 본인이 편한대로 지정하여서 사용하여도 가능하며
프로 퍼티의 개수 및 이름 또한 본인이 새로 지정하여 사용이 가능하다.
물론 2라인 처럼 선언한다면 기존의 이름 Pair을 그대로 사용이 가능하다.
300x250
'Kotlin > Collections' 카테고리의 다른 글
Kotlin PriorityQueue(우선순위 큐) (0) | 2020.12.03 |
---|---|
Kotlin Deque(덱 or 디큐) (0) | 2020.12.02 |
Kotlin 큐(Queue) (0) | 2020.12.01 |
Kotlin 스택(Stack) (0) | 2020.11.30 |
Kotlin getOrElse - 잘못된 접근으로 발생하는 에러 제거 (0) | 2020.11.28 |