Kotlin/포스팅

코틀린 데이터 클래스 연산

짜집퍼박사(짜박) 2023. 12. 31. 14:26

코틀린 데이터 클래스(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