Как разрушить конструктор в Котлине

Как я могу написать класс в 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 } 

И вот официальная документация о деструкции объявлений.