Um zu überprüfen, ob eine Map unter einem bestimmten Schlüssel einen Wert ungleich Null enthält, reicht es aus, den folgenden Ausdruck zu überprüfen if(aMap["aKey"]==aValue).
Wahrscheinlich wollten Sie [1,2,3] sagen. Enthält (1). Da ich vermute, enthält die Funktion selbst bereits einen Booleschen Wert. Warum möchten Sie es noch einmal mit einem fest codierten "wahren" vergleichen?
Harshay Buradkar
6
@ HarshayBuradkar Um wirklich sicher zu gehen true == true, natürlich #joke
Automatico
8
Wenn Sie Ihre Includes-Methode wirklich in einer ArrayList haben möchten, fügen Sie sie einfach hinzu:
ArrayList.metaClass.includes ={ i -> i indelegate}
WICHTIG Gotcha für die Verwendung von .contains () für eine Sammlung von Objekten, z. B. Domains. Wenn die Domain-Deklaration einen EqualsAndHashCode oder eine andere equals () -Implementierung enthält, um festzustellen, ob diese Ojbects gleich sind, und Sie sie wie folgt festgelegt haben ...
Dann wertet die .contains (myObjectToCompareTo) die Daten in myObjectToCompareTo mit den Daten für jede Objektinstanz in der Sammlung aus. Wenn Ihre Equals-Methode nicht dem Schnupftabak entspricht, wie meine nicht, werden möglicherweise unerwartete Ergebnisse angezeigt.
assert [12,42,33].indexOf(42) == 1
Antworten:
.contains () ist die beste Methode für Listen, aber für Karten müssen Sie .containsKey () oder .containsValue () verwenden.
quelle
if(aMap["aKey"]==aValue)
.Etwas Syntaxzucker
quelle
def m = [a: true]; 'a' in m
→ wahr nochdef m = [a: false]; 'a' in m
falsch → falsch!Verwenden Sie für Listen
contains
:quelle
true == true
, natürlich #jokeWenn Sie Ihre Includes-Methode wirklich in einer ArrayList haben möchten, fügen Sie sie einfach hinzu:
quelle
WICHTIG Gotcha für die Verwendung von .contains () für eine Sammlung von Objekten, z. B. Domains. Wenn die Domain-Deklaration einen EqualsAndHashCode oder eine andere equals () -Implementierung enthält, um festzustellen, ob diese Ojbects gleich sind, und Sie sie wie folgt festgelegt haben ...
Dann wertet die .contains (myObjectToCompareTo) die Daten in myObjectToCompareTo mit den Daten für jede Objektinstanz in der Sammlung aus. Wenn Ihre Equals-Methode nicht dem Schnupftabak entspricht, wie meine nicht, werden möglicherweise unerwartete Ergebnisse angezeigt.
quelle
Ich habe es so gemacht, damit es funktioniert, wenn jemand danach sucht.
quelle
Sie können den Mitgliedschaftsoperator verwenden:
Mitgliedschaftsbetreiber Groovy
quelle
Sie können auch Übereinstimmungen mit regulären Ausdrücken wie folgt verwenden:
quelle