Ponadto, aby sprawdzić, czy mapa zawiera jakąś inną wartość niż null pod określonym kluczem, wystarczy sprawdzić następujące wyrażenie if(aMap["aKey"]==aValue).
Prawdopodobnie chciałeś powiedzieć [1,2,3] .contains (1). Ponieważ zgaduję, że sama funkcja już zwraca wartość logiczną. Dlaczego chcesz ponownie porównać to z zakodowanym na stałe „prawdą”.
Harshay Buradkar
6
@HarshayBuradkar Aby się upewnić true == true, oczywiście # żart
Automatico
8
Jeśli naprawdę chcesz, aby Twoja metoda zawierała się w ArrayList, po prostu ją dodaj:
ArrayList.metaClass.includes ={ i -> i indelegate}
WAŻNE Gotcha do używania .contains () w kolekcji obiektów, takich jak domeny. Jeśli deklaracja domeny zawiera EqualsAndHashCode lub inną implementację equals () w celu określenia, czy te Ojbects są równe, i ustawiłeś to w ten sposób ...
następnie .contains (myObjectToCompareTo) oceni dane w myObjectToCompareTo z danymi dla każdej instancji Object w kolekcji. Tak więc, jeśli twoja metoda równych sobie nie pasuje do tabaki, tak jak moja nie, możesz zobaczyć nieoczekiwane rezultaty.
assert [12,42,33].indexOf(42) == 1
Odpowiedzi:
.contains () jest najlepszą metodą w przypadku list, ale w przypadku map należy użyć .containsKey () lub .containsValue ()
źródło
if(aMap["aKey"]==aValue)
.Trochę cukru składniowego
źródło
def m = [a: true]; 'a' in m
→ prawda, aledef m = [a: false]; 'a' in m
→ fałsz!W przypadku list użyj
contains
:źródło
true == true
, oczywiście # żartJeśli naprawdę chcesz, aby Twoja metoda zawierała się w ArrayList, po prostu ją dodaj:
źródło
WAŻNE Gotcha do używania .contains () w kolekcji obiektów, takich jak domeny. Jeśli deklaracja domeny zawiera EqualsAndHashCode lub inną implementację equals () w celu określenia, czy te Ojbects są równe, i ustawiłeś to w ten sposób ...
następnie .contains (myObjectToCompareTo) oceni dane w myObjectToCompareTo z danymi dla każdej instancji Object w kolekcji. Tak więc, jeśli twoja metoda równych sobie nie pasuje do tabaki, tak jak moja nie, możesz zobaczyć nieoczekiwane rezultaty.
źródło
Zrobiłem to w ten sposób, więc działa, jeśli ktoś tego szuka.
źródło
Możesz użyć operatora członkostwa:
Operator członkostwa Groovy
źródło
Możesz również użyć dopasowań z wyrażeniami regularnymi, takimi jak to:
źródło