There is no motorcade in Kotlin. Alternatively, you can use a data class with a declaration of destruction .
data class Time(val hour: Int, val minute: Int, val second: Int) func getTime(): Time { ... return Time(hour, minute, second) } //Usage val time = getTime() println("${time.hour}:${time.minute}:${time.second}") //Or val (hour, minute, second) = getTime() println("${hour}:${minute}:${second}")
If you do not want to create a data class for each specific case, you can create some general data classes and use typealias for clarity.
data class Two<A, B>(val a: A, val b: B) data class Three<A, B, C>(val a: A, val b: B, val c: C) data class Four<A, B, C, D>(val a: A, val b: B, val c: C, val d: D) ... typealias Time = Three<Int, Int, Int>
But, obviously, the disadvantage is that you must use the destruction declaration to give it the correct property name.
val time = getTime() println("${time.a}:${time.b}:${time.c}") val (hour, minute, second) = getTime() //destructuring declaration println("${hour}:${minute}:${second}")