joshua-r2
10/30/2017 - 7:41 PM

DataClass Sample

Data Classes are unique in that they automatically generate some Global Methods. Specifically, toString, equals, and copy all get autogenerated methods. Below is an example


//Here we are demonstrating data classes do not need extra code for the .equals, .copy, and .toString methods
// Pretty prittyyyyy good

data class User(var name:String, var ID: Int)

fun main(args: Array<String>){

    val josh = User("Josh", 1)

    //Println without ToString gives the values prefixed by parameters (nice)
    println(josh)

    val Yosemite = User("Sam", 2)
    val Becca = User("Becca betch", 3)


    //Using copy and specifying which parameter to replace
    println(Becca.copy(ID=4))

    //Showing that copy is an exact replica if no parameters specified in ".copy"
    println(Yosemite)
    println(Yosemite.copy())

    //Using .equals

    println("Becca == Josh? : ${josh==Becca}")
    println("Yosemite clones ==? : ${Yosemite==Yosemite.copy()}")

}