Quelle est la différence entre ceux-ci?
Pourquoi utiliser un sur l'autre? p>
3 Réponses :
en Java, in groovy, le ! = code> est "non égal à" em> et
~ code> est "Bitwise non" em>. Vous feriez effectivement faire
variable == ~ 6 code>. P>
== ~ code> est "match de regex" em>. Les exemples seraient: p>
"1234" == ~ / \ d + / code> -> évalue vers
true code> li>
"nonUBBers" == ~ / \ d + / code> -> évalue vers
false code> li>
ol>
in groovy, le == ~ code> (AKA "L'opérateur" Match ") est utilisé pour une correspondance d'expression régulière.
! = code> est juste un vieil ordinaire "pas égal à". Donc ce sont très différents. P>
Est-ce que == ~ code> en tant qu'opérateur de correspondance s'applique à
variable == ~ 6 code>?
Bonne question réellement. Habituellement, la correspondance d'expression régulière nécessite des barres obliques, mais un court test avec def var = 3; code> a abouti à:
var == ~ 4; code> étant
false code> et
var == ~ 3; code> étant
vrai code>, il pourrait donc y avoir une sorte de manipulation spéciale. Je ne suis pas expert groovy cependant.
@Sotiriosdelimanolis Pour finalement jeté un peu plus de lumière sur cette question: les barres obliques à Groovy sont pas i> une exigence particulière pour les modèles, mais simplement une autre façon de déclarer une chaîne. Donc / foo / code> est en fait la même chose que
"foo" code>. Et je crois que Groovy traite simplement le
6 code> comme
"6" code> (car la variable est un
def code>).
in Groovy, vous devez également être conscient que, en plus de Tous sont expliqués ici . P>
i présume que l'interpréteur / compilateur groovy peut distinguer entre == ~ code>, alias "Opérateur de match", il existe également
= ~ code>, alias "rechercher l'opérateur" et
~ code>, alias "motif opérateur". p>
== ~ code> Type de résultat:
booléen code> /
booléen code> (il n'y a pas de primitives à Groovy, tout n'est pas ce qu'il semble!) < / p>
= ~ code> Type de résultat:
java.util.regex.matcher code> p> p>
~ code> Type de résultat:
java.util.regex.pattern code> p>
~ ~ code> utilisé comme opérateur de motif et
~ code> utilisé comme un Bitwise, pas em> (c'est-à-dire son Utilisation en Java) via le contexte: le premier sera toujours suivi d'un motif, qui sera toujours bracké dans les délimiteurs, généralement
/ code>. p>
Ce n'est pas
== ~ code>, c'est
== code> et
~ code>. Au moins en Java. Parlez-vous de Java ou Groovy?
Je parle de Groovy, oups.
Lorsque vous regardez la documentation, pouvez-vous souligner ce qui n'est pas clair sur leur différence? groovy-lang.org/operators.html