簡體   English   中英

如何在Kotlin中破壞構造函數

[英]How to destruct a constructor in 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
}

這是有關解構聲明的官方文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM