데이터 집합 표현에 data 한정자를 사용하라
Data 한정자를 붙이면 다음과 같은 함수가 자동으로 생성된다.
클래스 이름과 기본 생성자 형태로 모든 프로퍼티와 값을 출력해준다.
print(player) // Player(id=0, name=Gecko, points=9999)
기본 생성자의 프로퍼티가 같은지 확인해 준다.
immutable 데이터 클래스를 만들 때 편리하다. 기본 생성자 프로퍼티가 같은 새로운 객체를 복제한다. (얕은 복사)
아래 코드와 같이 객체를 해체할 때 사용한다.
val (id, name, pts) = player
하지만 위치 순서를 혼동해서 객체를 잘못 해체하는 문제가 발생할 수 있으니, 기본 생성자에 지정한 프로퍼티 이름과 같은 이름을 사용하도록 하는게 좋다.
Pair, Triple 와 같은 튜플은 몇 가지 지역적인 목적에서만 사용하는 것이 좋다.
data로 나타내는 것이 어떤 역할을 하는지 이름을 붙일 수 있으므로 가독성면에서 좋다.
//tuple
Pair<String, String>?
//data
data class FullName(
val firstName: String,
val lastName: String
)