在 Kotlin 中,數(shù)據(jù)類(data class)會自動生成一些通用方法,如 equals()
、hashCode()
、toString()
和 copy()
。這些方法是根據(jù)數(shù)據(jù)類中的屬性自動生成的。要創(chuàng)建一個數(shù)據(jù)類,只需在類名前加上 data
關(guān)鍵字即可。
例如,創(chuàng)建一個簡單的數(shù)據(jù)類 Person
:
data class Person(val name: String, val age: Int)
在這個例子中,name
和 age
是屬性。當創(chuàng)建了這個數(shù)據(jù)類后,Kotlin 會自動生成以下方法:
equals()
:比較兩個對象是否相等。hashCode()
:返回對象的哈希碼。toString()
:返回對象的字符串表示形式。copy()
:創(chuàng)建一個新的對象,并將原對象的屬性值復制到新對象中。你可以像下面這樣使用這些自動生成的方法:
fun main() {
val person1 = Person("Alice", 30)
val person2 = Person("Alice", 30)
val person3 = Person("Bob", 25)
println(person1 == person2) // 輸出 true
println(person1 == person3) // 輸出 false
println(person1.hashCode()) // 輸出某個哈希碼值
println(person1.toString()) // 輸出 "Person(name=Alice, age=30)"
val person4 = person1.copy(age = 31)
println(person4) // 輸出 "Person(name=Alice, age=31)"
}
注意,如果你需要為數(shù)據(jù)類添加自定義方法,可以在類體中添加函數(shù)。這些方法不會自動生成,需要手動實現(xiàn)。