Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정

Notepad96

·

2020. 12. 2. 14:49

300x250

 

 

 

 

 


1. Val cannot be reassigned - Pair 값 수정

 

Kotlin 에서는 PairTriple에 있는 프로퍼티는 val로 선언되어 Read-only 이다

 

 

 

Kotlin 변수 묶기 Pair, Triple

1. 2개의 변수 묶기 - Pair data class Pair (val first: A, val second: B) Pair 클래스는 다음과 같이 정의되어 있다. Pair 클래스는 data class로서 2개의 변수를 묶어 사용하기 유용하다. fun main()..

notepad96.tistory.com

 

 

따라서 수정이 가능한 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