類別的宣告如下:
data class Person(val name: String, val phone: String)以上的 Person data class 有兩個屬性,分別是 name 和 phone,型別皆為 String。
其中 data class 還提供一些常用的 functions 來方便我們使用 :
- toString()
回傳該 data class 的屬性鍵值對名稱
範例:fun main() { val person = Person("John", "12345678") val personInfo = person.toString() println(personInfo) }
輸出:Person(name=John, phone=12345678)
- copy()
複製並回傳該 data class,且可覆寫指定的屬性值
範例:
fun main() { val john = Person("John", "12345678") val aren = john.copy(name = "Aren") val personInfo = aren.toString() println(personInfo) }
輸出:Person(name=Aren, phone=12345678)
- equals / hashCode
針對該 data class 的屬性值做 equals 的比對和 hashCode 的產生
範例:
fun main() { val person = Person("John", "12345678") val copyPerson = person.copy() if (person == copyPerson) { println("true") } }
輸出:true
留言
張貼留言