如何在Kotlin中销毁构造函数

如何在Kotlin中销毁构造函数,kotlin,Kotlin,如何以这种方式在Kotlin中编写一个类,以便在初始化时销毁它,例如: val (set, list, map) = CollectionsGenerator(arg1, arg2) 为了分解对象,您需要在对象上定义以下形式的方法,其中X是从1开始的数字,返回类型可以是您希望返回的任何类型: operator fun componentX(): Any {} 要执行与您的问题类似的操作,可以将构建类时使用的参数保存为属性,然后组件方法可以使用这些属性: class SetAndListMak

如何以这种方式在Kotlin中编写一个类,以便在初始化时销毁它,例如:

val (set, list, map) = CollectionsGenerator(arg1, arg2)

为了分解对象,您需要在对象上定义以下形式的方法,其中X是从1开始的数字,返回类型可以是您希望返回的任何类型:

operator fun componentX(): Any {}
要执行与您的问题类似的操作,可以将构建类时使用的参数保存为属性,然后组件方法可以使用这些属性:

class SetAndListMaker(val i: Int, val s: String) {

    operator fun component1() = setOf(i, s)

    operator fun component2() = listOf(i, s)

}

fun main(args: Array<String>) {
    val (set, list) = SetAndListMaker(25, "dog")
}
当然,此主要功能与此相同:

fun main(args: Array<String>) {
    val setAndListMaker = SetAndListMaker(25, "dog")
    val (set, list) = setAndListMaker
}

为了分解对象,您需要在对象上定义以下形式的方法,其中X是从1开始的数字,返回类型可以是您希望返回的任何类型:

operator fun componentX(): Any {}
要执行与您的问题类似的操作,可以将构建类时使用的参数保存为属性,然后组件方法可以使用这些属性:

class SetAndListMaker(val i: Int, val s: String) {

    operator fun component1() = setOf(i, s)

    operator fun component2() = listOf(i, s)

}

fun main(args: Array<String>) {
    val (set, list) = SetAndListMaker(25, "dog")
}
当然,此主要功能与此相同:

fun main(args: Array<String>) {
    val setAndListMaker = SetAndListMaker(25, "dog")
    val (set, list) = setAndListMaker
}