Avatar ·

Was bedeutet der Operator * (Sternchen) vor einer Variable in Kotlin? Spread-Operator

Hallo! Ich lerne Kotlin und bin auf eine seltsame Syntax gestoßen, die ich nicht verstehen kann. Ich habe diesen Code gefunden:\n\n```kotlin\nval numbers = listOf(1, 2, 3)\nval moreNumbers = listOf(0, *numbers.toTypedArray(), 4, 5)\nprintln(moreNumbers) // [0, 1, 2, 3, 4, 5]\n```\n\nWas bedeutet das Sternchen `*` vor `numbers.toTypedArray()`? Ich weiß, dass es in Java einen ähnlichen Operator zum Entpacken von Arrays gibt, aber in Kotlin bin ich es gewohnt, anders mit Listen und Arrays zu arbeiten.\n\nIch habe versucht, ähnlichen Code ohne das Sternchen zu schreiben:\n\n```kotlin\nval wrong = listOf(0, numbers.toTypedArray(), 4, 5)\nprintln(wrong) // [0, [Ljava.lang.Integer;@..., 4, 5]\n```\n\nDas ergab Unsinn — das Array-Objekt landete in der Liste, nicht seine Elemente. Wie verwendet man diesen Operator richtig? Gibt es Alternativen? Und warum in Kotlin, das als