Kotlin 數據類(data class)是一種簡化數據結構創建和操作的方式
data class
關鍵字:在類前加上 data
關鍵字,可以將其聲明為數據類。數據類會自動生成一些通用方法,如 equals()
、hashCode()
和 toString()
等。data class User(val name: String, val age: Int, val address: Address)
data class Address(val street: String, val city: String, val country: String)
使用主構造函數:數據類必須有一個主構造函數,該構造函數接收與屬性數量相同的參數,并為這些參數提供類型注解。
自動生成 equals()
、hashCode()
和 toString()
方法:由于數據類包含屬性,因此它們會自動生成 equals()
、hashCode()
和 toString()
方法。這使得比較對象、將對象轉換為字符串等操作變得非常簡單。
使用解構聲明:數據類支持解構聲明,這意味著你可以將數據類的屬性提取到單獨的變量中。
val (name, age, address) = user
fun User.getFullName(): String {
return "$name ${address.city}"
}
copy()
函數:當你需要創建一個數據類的副本時,可以使用 copy()
函數。這個函數允許你修改某些屬性,同時保留其他屬性的值。val newUser = user.copy(age = user.age + 1)
toDataClass()
函數:在某些情況下,你可能需要將一個復雜的數據結構轉換為數據類。你可以使用 toDataClass()
函數來實現這一目標。val json = """{"name":"John", "age":30, "address":{"street":"Main St", "city":"New York", "country":"USA"}}"""
val user = Json.decodeFromString<User>(json)
總之,Kotlin 數據類提供了一種簡潔、易讀的方式來處理復雜的數據結構。通過自動生成的方法和擴展屬性,你可以輕松地操作和處理數據類實例。