如何破坏Kotlin中的构造函数

我怎样才能以这种方式在Kotlin上编写一个类,这样在初始化时就可以破坏它,例如:

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

为了解构一个对象,你需要定义一个具有以下形式的方法(其中X是一个从1开始的数字,返回类型可以是你希望返回的任何东西):

 operator fun componentX(): Any {} 

要做类似于你的问题的东西,你可以将你构造类的参数保存到属性中,然后component方法可以使用这些属性:

 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 } 

这里是关于解构声明的官方文档。