📅  最后修改于: 2023-12-03 15:17:09.659000             🧑  作者: Mango
在某些情况下,我们需要从函数中返回多个值。在 Kotlin 中,可以使用 Pair
或 Triple
类来实现多个返回值。此外,我们还可以使用数据类、自定义类等。
Pair
类可以包含二元组,即两个值。可以使用 Pair
类作为函数的返回类型来返回两个不同类型的值。
fun getUserNameAndAge(): Pair<String, Int> {
val name = "John"
val age = 30
return Pair(name, age)
}
fun main() {
val (name, age) = getUserNameAndAge()
println("Name: $name, Age: $age")
}
输出:
Name: John, Age: 30
类似地,Triple
类可以包含三元组,即三个值。
fun getUserNameAgeAndGender(): Triple<String, Int, String> {
val name = "John"
val age = 30
val gender = "male"
return Triple(name, age, gender)
}
fun main() {
val (name, age, gender) = getUserNameAgeAndGender()
println("Name: $name, Age: $age, Gender: $gender")
}
输出:
Name: John, Age: 30, Gender: male
使用数据类也可以实现多个返回值。数据类会自动生成 component1
、component2
、component3
等方法,用于获取对应属性的值。
data class User(val name: String, val age: Int, val gender: String)
fun getUser(): User {
val name = "John"
val age = 30
val gender = "male"
return User(name, age, gender)
}
fun main() {
val (name, age, gender) = getUser()
println("Name: $name, Age: $age, Gender: $gender")
}
输出:
Name: John, Age: 30, Gender: male
如果需要返回多个值,但这些值没有直接的关系,也可以创建一个自定义类,包含这些值作为属性。
class UserInformation(val name: String, val age: Int, val email: String)
fun getUserInformation(): UserInformation {
val name = "John"
val age = 30
val email = "john@example.com"
return UserInformation(name, age, email)
}
fun main() {
val userInfo = getUserInformation()
println("Name: ${userInfo.name}, Age: ${userInfo.age}, Email: ${userInfo.email}")
}
输出:
Name: John, Age: 30, Email: john@example.com
在 Kotlin 中,有多种方式可以返回多个值,包括 Pair
、Triple
、数据类和自定义类。开发者可以根据实际情况选择最适合的方式。