2016-03-15 29 views
6

Quando si destruttura un oggetto, è possibile dichiarare solo le variabili che mi servono?Argomenti non utilizzati durante la distruzione di un oggetto in Kotlin

In questo esempio sto utilizzando solo e il mio IDE mi avvisa che a non è utilizzato.

fun run() { 
    fun makePair() = Pair("Apple", "Orange") 

    val (a, b) = makePair() 

    println("b = $b") 
} 
+0

In altre lingue, si ha spesso qualcosa di simile a 'val (_, b) = makePair()' . Niente di simile a Kotlin? – Thilo

+0

Una domanda un po 'simile e una risposta un po' insoddisfacente: http://stackoverflow.com/questions/29046636/mark-unused-parameters-in-kotlin – Thilo

+0

@Thilo Scala ce l'ha, ma non sembra che ci sia qualcosa di simile in Kotlin. Almeno non ancora. –

risposta

2

Si potrebbe utilizzare:

val b = makePair().component2() 
9

Dal Kotlin 1.1, è possibile utilizzare un carattere di sottolineatura per marcare una componente inutilizzata di una dichiarazione destructing:

fun run() { 
    fun makePair() = Pair("Apple", "Orange") 

    val (_, b) = makePair() 

    println("b = $b") 
} 
+0

Questa risposta dovrebbe essere aggiornata per Kotlin 1.1 –

0

Se siete interessati solo nel primo paio di argomenti puoi omettere i rimanenti. Nel codice che non è possibile, ma se si cambia l'ordine degli argomenti, è possibile scrivere in questo modo:

fun run() { 
    fun makePair() = Pair("Orange", "Apple") 

    val (b) = makePair() 

    println("b = $b") 
} 
Problemi correlati