Groovy erweitert Tupel / Map zu Argumenten

8

Ist es möglich, eine Map auf eine Liste von Methodenargumenten zu erweitern

?

In Python ist es möglich, z. Tupel in Argumente erweitern

Ich habe ein def map = ['a':1, 'b':2] und eine Methode def m(a,b)

Ich möchte smt wie m(*map)

schreiben     
Queequeg 19.11.2012, 07:42
quelle

3 Antworten

7

Der Spread-Operator (*) wird verwendet, um a getrennt in einzelne Elemente aufzählen. Dies kann verwendet werden, um eine Methode mit mehreren Parametern aufzurufen und dann eine Liste in die Werte für die Parameter zu verteilen.

Liste (Listen in Groovy sind am nächsten mit Tupeln in Python verwandt 1 , 2 ):

%Vor%

Karte:

%Vor%

Ein wichtiger Punkt ist, dass Sie die Argumente nach Position übergeben.

    
Arturo Herrero 19.11.2012, 10:45
quelle
1

Das Beste, woran ich momentan denke, ist:

%Vor%

Dies berücksichtigt jedoch die Reihenfolge der Map und nicht die Namen der Schlüssel beim Aufruf der Funktion / Konstruktor.

Sie möchten wahrscheinlich eine Funktion / einen Konstruktor hinzufügen, der eine Map übernimmt, und zwar auf diese Weise

    
tim_yates 19.11.2012 09:36
quelle
-1
%Vor%

30

3

    
user1755394 19.11.2012 09:16
quelle