📜  Kotlin 中的三重

📅  最后修改于: 2022-05-13 01:55:47.305000             🧑  作者: Mango

Kotlin 中的三重

在编程中,我们调用函数来执行特定任务。关于函数的最好的事情是我们可以调用它任意次数,它在计算后返回一些值,即如果我们有add()函数,那么它总是返回输入的两个数字的总和。但是,函数有一些限制,比如函数一次只返回一个值。如果需要返回多个不同数据类型的值,那么我们可以创建一个类并声明我们想要从函数返回的所有变量,然后创建该类的一个对象并轻松收集所有返回列表中的值。主要问题是,如果程序中有这么多函数一次返回多个值,那么我们必须为所有这些函数创建一个单独的类并最终使用该类。这个过程增加了程序的冗长和复杂性。为了处理这些类型的问题,Kotlin 引入了PairTriple的概念。

三重是什么?

Kotlin 语言提供了一种简单的数据类型来在一个实例中存储三个值。这可以使用称为Triple的数据类来完成。它是一个简单的泛型类,存储任意三个值,三个值之间的关系没有任何有价值的意义。两个 Triple 对象之间的比较是基于values进行的,即只有当所有三个组件都相等时,两个 Triples 才相等。

类定义:

data class Triple : Serializable

共有三个参数:

  • A –第一个值的类型
  • B –第二个值的类型
  • C –第三个值的类型

构造函数

在 Kotlin 中,构造函数是一个特殊的成员函数,在创建类的对象时调用它,主要是为了初始化变量或属性。要创建 Triple 的新实例,我们使用:

Triple(first: A, second: B, third: C)

Kotlin 使用构造函数创建三元组的示例:

Kotlin
fun main() {
    val (x, y, z) = Triple(1, "Geeks", 2.0)
    println(x)
    println(y)
    println(z)
}


Kotlin
fun main() {
    // declare triple
    var triple = Triple("Hello Geeks",
                        "This is Kotlin tutorial",
                        listOf(10, 20, 30))
    println(triple.first)
    println(triple.second)
    println(triple.third)
}


Kotlin
fun main() {
    // first triple
    val triple = Triple(5, 5, 5)
    println("String representation is "+triple.toString())
     
      // second triple
    val triple2 = Triple("Geeks",
                         listOf("Praveen", "Gaurav", "Abhi"),
                         12345)
    print("Another string representation is "+ triple2.toString())
}


Kotlin
fun main() {
    // first triple
    var obj = Triple(1, 2, 3)
    val list1: List = obj.toList()
    println(list1)
     
      // second triple
    var obj2 = Triple("Hello", 2.0000 ,
                      listOf(10, 20, 30))
    val list2: List = obj2.toList()
    println(list2)
}


输出:

1
Geeks
2.0

特性

我们可以在单个变量中接收三元组的值,也可以使用firstsecondthird属性来提取值。

  • first :此字段存储 Pair 的第一个值。
  • second :此字段存储 Pair 的第二个值。
  • 第三:此字段存储对的第三个值。

Kotlin 程序使用属性检索 Triple 的值:

科特林

fun main() {
    // declare triple
    var triple = Triple("Hello Geeks",
                        "This is Kotlin tutorial",
                        listOf(10, 20, 30))
    println(triple.first)
    println(triple.second)
    println(triple.third)
}

输出:

Hello Geeks
This is Kotlin tutorial
[10, 20, 30]

职能

toString():此函数返回与 Triple 等效的字符串。

fun toString(): String

Kotlin 程序使用函数:

科特林

fun main() {
    // first triple
    val triple = Triple(5, 5, 5)
    println("String representation is "+triple.toString())
     
      // second triple
    val triple2 = Triple("Geeks",
                         listOf("Praveen", "Gaurav", "Abhi"),
                         12345)
    print("Another string representation is "+ triple2.toString())
}

输出:

String representation is (5, 5, 5)
Another string representation is (Geeks, [Praveen, Gaurav, Abhi], 12345)

扩展功能

正如我们在之前的文章中所了解的,扩展函数提供了向现有类添加更多功能的能力,而无需继承它们。

toList():此函数返回与给定 Triple 等效的 List。

fun Triple.toList(): List

使用扩展函数的 Kotlin 程序:

科特林

fun main() {
    // first triple
    var obj = Triple(1, 2, 3)
    val list1: List = obj.toList()
    println(list1)
     
      // second triple
    var obj2 = Triple("Hello", 2.0000 ,
                      listOf(10, 20, 30))
    val list2: List = obj2.toList()
    println(list2)
}

输出:

[1, 2, 3]
[Hello, 2.0, [10, 20, 30]]