Kotlin Sternchen-operator vor der Variablen namens-oder Spread-Operator in Kotlin
Ich will wissen, was genau das Sternchen vor dem Variablennamen in Kotlin.
Ich sah dies (*args
) bei Spring boot Kotlin Beispiel:
@SpringBootApplication
open class Application {
@Bean
open fun init(repository: CustomerRepository) = CommandLineRunner {
repository.save(Customer("Jack", "Bauer"))
repository.save(Customer("Chloe", "O'Brian"))
repository.save(Customer("Kim", "Bauer"))
repository.save(Customer("David", "Palmer"))
repository.save(Customer("Michelle", "Dessler"))
}
}
fun main(args: Array<String>) {
SpringApplication.run(Application::class.java, *args)
}
InformationsquelleAutor mojtab23 | 2016-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
*
Betreiber ist bekannt als die Spread-Operator in Kotlin.Aus der Kotlin Referenz...
Kann es angewendet werden, zu einem Array vor der übergabe in eine Funktion akzeptiert
varargs
.Zum Beispiel...
Wenn Sie eine Funktion akzeptiert eine vielfältige Anzahl von Argumenten...
Können Sie ein array übergeben in es wie so...
Hinweise:
*
Betreiber ist auch der Multiplikationsoperator (natürlich).apply
Funktion in verschiedene funktionale Programmiersprachen.Du bist herzlich willkommen. Wenn Sie das Gefühl, dass ich vollständig beantwortet Ihre Frage, bitte markieren Sie es als Antwort akzeptiert. Wenn es etwas gibt, das Sie gerne verbessert werden, lassen Sie es mich wissen.
InformationsquelleAutor byxor
Zusätzlich zu den Antworten, die waren direkt in Richtung "was ist dieses Ding!?!", Sie haben oft den Fall, wo Sie eine
List
und wollen, um es zu übergeben, um eine Funktion erwartetvararg
. Für diese, die Konvertierung ist:Unter der Annahme, dass der Letzte parameter von
someFunc
istvararg
vom gleichen Typ wie die Elemente in der Liste.Danke! Wirklich hilfreich. Frage mich, was ist "Spread-Operator" hinter den kulissen? Ist nur eine Möglichkeit, um eine varargs-Wert?
InformationsquelleAutor Jayson Minard
Wie beschrieben in die Dokumentation dies ist ein spread-operator:
InformationsquelleAutor miensol
In Java können Sie ein array übergeben, wie Sie ist, sondern ein Vorteil, entpacken ein array mit den spread-operator
*
ist, dass spread-operator ermöglicht Ihnen, kombinieren Sie die Werte aus einem array und einige Feste Werte, die in einem einzigen Aufruf. Java nicht unterstützt.InformationsquelleAutor Gulzar Bhat