Kotlin 中没有元组。或者,您可以将data class 与destructuring declaration 一起使用。
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}")
如果您不想为每个特定情况创建数据类,您可以创建一些通用数据类并使用typealias 以清楚起见。
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>
但是,显然,缺点是您必须使用解构声明才能给它一个正确的属性名称。
val time = getTime()
println("${time.a}:${time.b}:${time.c}")
val (hour, minute, second) = getTime() //destructuring declaration
println("${hour}:${minute}:${second}")