코틀린 데이터 클래스(data class)에서는 자동으로 생성되는 몇 가지 연산을 통해 편리하게 데이터를 다룰 수 있습니다. 이러한 연산들은 주로 데이터 클래스의 프로퍼티들을 다루거나 객체를 비교하는 데 사용됩니다.
1. componentN() 함수
데이터 클래스는 각 프로퍼티에 대한 componentN() 함수를 자동으로 생성합니다. 이 함수들은 구조 분해 선언에서 사용됩니다.
data class Person(val name: String, val age: Int)
val person = Person("John", 25)
val (name, age) = person
println("Name: $name, Age: $age")
위의 예제에서 component1()은 name에 대응하고, component2()는 age에 대응합니다.
2. copy() 함수
copy() 함수를 사용하여 객체의 복사본을 생성할 수 있습니다. 일부 프로퍼티를 변경하거나 기존 값을 유지할 수 있습니다.
data class Person(val name: String, val age: Int)
val person = Person("John", 25)
val modifiedPerson = person.copy(age = 30)
println(person) // 출력: Person(name=John, age=25)
println(modifiedPerson) // 출력: Person(name=John, age=30)
3. equals() 함수
데이터 클래스는 자동으로 equals() 함수를 생성하여 객체의 내용이 같은지를 비교합니다.
data class Person(val name: String, val age: Int)
val person1 = Person("John", 25)
val person2 = Person("John", 25)
println(person1 == person2) // 출력: true
4. hashCode() 함수
hashCode() 함수는 객체의 해시 코드를 반환합니다. 데이터 클래스에서는 프로퍼티 값을 이용하여 해시 코드를 생성합니다.
data class Person(val name: String, val age: Int)
val person = Person("John", 25)
println(person.hashCode())
5. toString() 함수
toString() 함수는 객체를 문자열로 표현합니다. 데이터 클래스에서는 각 프로퍼티의 이름과 값을 사용하여 문자열을 생성합니다.
data class Person(val name: String, val age: Int)
val person = Person("John", 25)
println(person.toString()) // 출력: Person(name=John, age=25)
이러한 연산들은 데이터 클래스를 사용함으로써 코드의 간결성을 증가시키고, 일반적으로 필요한 기능들을 자동으로 생성해 줌으로써 개발자의 생산성을 향상시킵니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 인라인 클래스 정의 (0) | 2023.12.31 |
---|---|
코틀린 구조 분해 선언 (0) | 2023.12.31 |
코틀린 데이터 클래스 (0) | 2023.12.31 |
코틀린 enum 클래스의 공통 멤버 (0) | 2023.12.31 |
코틀린 enum 클래스 사용자 멤버 정의 (0) | 2023.12.31 |