Typically, we will create a number of bean classes to hold data. Kotlin introduces the concept of a data class. The following block of code show the declaration of a data class:
data class Address(val line1: String,
val line2: String,
val zipCode: Int,
val state: String,
val country: String)
Kotlin provides a primary constructor, equals(), hashcode(), and a few other utility methods for data classes. The following lines of code shows the creation of an object using the constructors:
val myAddress = Address("234, Some Apartments",
"River Valley Street", 54123, "NJ", "USA")
Kotlin also provides a toString :
println(myAddress)
//Address(line1=234, Some Apartments, line2=River Valley
//Street, zipCode=54123, state=NJ, country=USA)
The copy function can be used to make a copy (clone) of an existing data class object. The following code snippet shows the details:
val myFriendsAddress = myAddress.copy(line1 = "245, Some Apartments")
println(myFriendsAddress)
//Address(line1=245, Some Apartments, line2=River Valley
//Street, zipCode=54123, state=NJ, country=USA)
An object of a data class can easily be destructured. The following line of code shows the details. println makes use of string templates to print the value:
val (line1, line2, zipCode, state, country) = myAddress;
tln("$line1 $line2 $zipCode $state $country");
//234, Some Apartments River Valley Street 54123 NJ USA