코틀린에서는 Pair 와 Triple 이라는 표준형 데이터 클래스를 사용할 수 있습니다.
그중 2가지 객채를 한번에 다루는 Pair에 대해 먼저 소개해 드리도록 하겠습니다.
▶ Data Class의 소개
데이터 클래스로 정의가 될 경우 인스턴스로 생성되었을때,
equals(), hashCode(), toString(), componentN(), copy() 함수등이 자동으로 생성되여 연산이 가능합니다.
이러한 데이터 클래스 (Data Class)로 다양한 형태의 데이타를 손쉽게 관리하고 인스턴스 사이의 비교, 연산 작업을 통해 생산성을 극대화 할 수 있습니다.
일반적으로 데이터 클래스를 정의 할때는 아래와 같은 기준을 가지고 설계 하여야 합니다.
- 데이터 클래스를 다른 클래스로 확장 불가
- 데이터 클래스는 abstract, open, sealed, inner 클래스 등으로 적용 불가
- 모든 기본 생성자들은 val 또는 var로 지정 필요
- 기본 생성자는 최소 하나의 매개변수 파라미터가 필요
▶ Pair 사용 예제
그럼 먼저 Pair의 사용 예제를 소개해 드리도록 하겠습니다.
// 초기화 방법 1
val pairA = Pair<Int, Int>(1000000, 1000000000)
val pairB = Pair<String, String>("helloworld", "koreanpeople")
val pairC = Pair<int, String>(1000000000000, "koreanpeople")
// 초기화 방법 2
val pairD = Pair(1000000, 1000000000)
val pairE = Pair("helloworld", "koreanpeople")
val pairF = Pair(1000000000000, "koreanpeople")
// 객체 접근 방법 1
System.out.println(pairA.first)
System.out.println(pairA.second)
System.out.println(pairB.first)
System.out.println(pairB.second)
System.out.println(pairC.first)
System.out.println(pairC.second)
// 객체 접근 방법 2
System.out.println(pairA.component1())
System.out.println(pairA.component2())
System.out.println(pairB.component1())
System.out.println(pairB.component2())
System.out.println(pairC.component1())
System.out.println(pairC.component2())
먼저 pairA, pairB, pairC의 경우 명확하게 데이터 형까지 지정해서 초기화를 하였습니다.
먼저 pairD, pairE, pairF의 경우 파이썬에서와 같이 형지정 없이 초기화가 가능합니다.
코틀린에서 pair 데이터 클래스의 각 밸류는 first, second로 접근이 가능합니다.
코틀린에서 pair 데이터 클래스의 접근은 component1, component2 함수로도 동일하게 접근 가능합니다.
▶ 결론
간단한 표준 라이브러리 데이터클래스에 대해서 소개해 드렸는데요, 연산, 비교도 손쉽게 가능하기 때문에 다음 순서에 이어서 소개해 드리도록 하겠습니다.