📜  Kotlin 中的多个返回值(1)

📅  最后修改于: 2023-12-03 15:17:09.659000             🧑  作者: Mango

Kotlin 中的多个返回值

在某些情况下,我们需要从函数中返回多个值。在 Kotlin 中,可以使用 PairTriple 类来实现多个返回值。此外,我们还可以使用数据类、自定义类等。

使用 Pair 类

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 类

类似地,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
使用数据类

使用数据类也可以实现多个返回值。数据类会自动生成 component1component2component3 等方法,用于获取对应属性的值。

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 中,有多种方式可以返回多个值,包括 PairTriple、数据类和自定义类。开发者可以根据实际情况选择最适合的方式。