Groovy - Hinzufügen eines Karteneintrags mit Iterator

8

Bitte erläutern Sie, warum das nicht funktioniert (Groovy 2.0.5 auf JDK7). Ich möchte nur einige Karteneinträge aus einer Liste hinzufügen.

%Vor%

Es funktioniert auch nicht mit:

%Vor%

Aber es funktioniert mit:

%Vor%

???

    
user1785330 30.10.2012, 12:51
quelle

1 Antwort

13

Dies

%Vor%

Verwendet nur einen Schlüssel namens it . Wenn Sie es in runde Klammern setzen:

%Vor%

Es funktioniert wie du willst ...

Wenn Sie das tun:

%Vor%

Dann können Sie sehen, dass Sie GStringImpl : als Schlüssel und nicht als java.lang.String

haben %Vor%

(Paketnamen wurden der Kürze wegen weggelassen)

Dann versuchen Sie, einen GString-Schlüssel mit einem String nachzuschlagen, und dies schlägt fehl (siehe 'GStrings sind keine Strings' Abschnitt auf dieser Seite )

Das funktioniert:

%Vor%

Erzeugt nur einen String (indem er it an den leeren String anhängt)

Wie auch immer ... Lange Rede kurzer Sinn, benutze [(it):'value']

    
tim_yates 30.10.2012 13:00
quelle

Tags und Links