Was ist der Unterschied zwischen ==~ und != in Groovy?
Was ist der Unterschied zwischen diesen?
Warum verwenden Sie einen über den anderen?
def variable = 5
if( variable ==~ 6 && variable != 6 ) {
return '==~ and != are not the same.'
} else {
return '==~ and != are the same.'
}
- Es ist nicht
==~
es==
und~
. Zumindest in Java. Redest du von Java oder Groovy? - Ich spreche Groovy, Hoppla.
- Beim betrachten der Dokumentation, können Sie Sie markieren, was unklar ist, über deren Unterschied? groovy-lang.org/operators.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
In groovy, die
==~
Betreiber (aka die "match" - operator) verwendet für reguläre Ausdrücke.!=
ist einfach nur ein plain old regelmäßigen "nicht gleich". Es sind also sehr unterschiedlich.vgl. http://groovy-lang.org/operators.html
==~
als match-operator anwenden zuvariable ==~ 6
?def var = 3;
ergab:var ==~ 4;
wirdfalse
undvar ==~ 3;
wirdtrue
so könnte es irgendeine Art von spezieller Handhabung. Ich bin kein groovy Experte obwohl./foo/
ist in der Tat das gleiche wie"foo"
. Und ich glaube, dass groovy einfach behandelt die6
als"6"
(wie die variable ist eine nicht typisiertedef
).In Java
!=
ist "nicht gleich" und~
ist "bitweise not". Würden Sie tatsächlich tunvariable == ~6
.In Groovy, die
==~
Betreiber ist "Regex match". Beispiele wären:"1234" ==~ /\d+/
-> wertettrue
"nonumbers" ==~ /\d+/
-> wertetfalse
==~
Betreiber. Siehe groovy-lang.org/operators.htmlIn Groovy-Sie müssen sich auch bewusst sein, dass zusätzlich zu
==~
alias "Match-operator", gibt es auch=~
alias "Finden Operator" und~
alias "Muster operator".Alle erläutert werden hier.
==~
Ergebnis-Typ:Boolean
/boolean
(es gibt keine primitive in Groovy, nicht alles ist, was es scheint!)=~
Ergebnis-Typ:java.util.regex.Matcher
~
Ergebnis-Typ:java.util.regex.Pattern
Ich nehme an, der Groovy-interpreter/compiler unterscheiden kann zwischen
~
als ein Muster operator und~
als ein bitweise NICHT (D. H. Ihre Verwendung in Java) durch den Kontext: der ehemalige wird immer gefolgt von einem Muster, das immer in Klammern, Trennzeichen, in der Regel/
.