Konstruktoraufruf in Kotlin mit vararg

8

Gibt es eine Möglichkeit, einen Konstruktor unter Verwendung von Varargs aufzurufen, ohne den Array-Parameter ( datain[0] , datain[10] usw.) hart zu codieren. Zum Beispiel

%Vor%

Momentan rufe ich so an:

%Vor%     
manish 14.07.2015, 18:58
quelle

1 Antwort

12

Es scheint ein bisschen bedeutungslos, da vararg mehr oder weniger Elemente enthalten kann, als der andere Konstruktor erwartet. Es ist auch eine ziemlich seltene Situation, wenn alle Argumente den gleichen Typ haben, so dass die vararg passen würde. Aber nein, derzeit gibt es kein Sprachfeature, das vararg in Parameter für Funktionen oder Konstruktoraufrufe zerlegen würde.

Ich nehme an, es ist besser für das Sprachdesign, dass Sie es explizit zeigen, dass Sie bestimmte Elemente von vararg auswählen, da es keine versteckten Fallstricke enthält und Sie sich immer der Indizierung bewusst sind.

Aber Sie können einen vararg -Parameter als vararg -Parameter an eine andere Funktion oder einen anderen Konstruktor übergeben, wenn Sie ihn transformiert haben. Dies geschieht durch den Spread-Operator * , siehe Beispiel:

%Vor%

Jedes Array des richtigen Typs kann mit * übergeben werden (einschließlich vararg selbst, da es sich um ein Array handelt), aber die Leistung von vararg endet damit.

    
hotkey 14.07.2015, 21:55
quelle

Tags und Links