데이터를 다루는데 최적화된 클래스로 아래 기능을 자동으로 생성해준다
class General(val name: String, val id: Int)
data class Data(val name: String, val id: Int)
fun main() {
val a = General("보잉", 747)
println(a == General("보잉", 747)) // 재대로 구현이 안됨
println(a.hashCode()) // 재대로 구현이 안됨
println(a) // 재대로 구현이 안됨
val b = Data("루디", 306)
println(b == Data("루디", 747))
println(b.hashCode())
println(b)
println(b.copy())
println(b.copy("아련"))
println(b.copy(id = 123))
}
class General(val name: String, val id: Int)
data class Data(val name: String, val id: Int)
fun main() {
val list = listOf(Data("보영",12),
Data("루디",34),
Data("아린",56))
// 내부적으로 component1(), component2()함수를 사용해서 불러오게 됨
for((a,b) in list) {
println("${a}, ${b}")
}
}
enum class State(val message: String) {
SING("노래를 부른다"),
EAT("밥을 먹다"),
SLEEP("잠을 잔다");
fun isSleeping() = this == State.SLEEP
}
fun main() {
var state = State.SING
println(state)
state = State.SLEEP
println(state.isSleeping())
}