L'opérateur "in" Groovy semble signifier différentes choses dans différents cas. Parfois x in y
signifie y.contains(x)
et parfois il semble appeler y.isCase(x)
.Comment fonctionne l'opérateur Groovy?
Comment Groovy sait-il appeler? Existe-t-il une classe particulière ou un ensemble de classes que Groovy connaît et qui utilisent la méthode .contains? Ou le comportement est-il déclenché par l'existence d'une méthode sur l'un des objets? Y a-t-il des cas où l'opérateur in est changé entièrement en quelque chose d'autre?
Ok, cela a du sens. J'étais confus au sujet de la relation entre "in" et isCase. Je peux voir maintenant contient des sens lorsque vous utilisez un conteneur comme une étiquette de cas. Réutiliser isCase pour l'opérateur in est un peu surprenant, car il permet des expressions inattendues comme 'asdf' dans String == true. – ataylor
C'est correct, mais imo pauvre de la part de groovy. Bien que le comportement des instructions de cas et contenant un élément utilise la même logique avec les collections, elles sont très différentes dans d'autres situations. Par exemple, l'assertion suivante ne passe pas: assertion "b" dans "brioches". C'est contre-intuitif pour dire le moins. –
quelqu'un peut s'il vous plaît dites-moi en bref ce que signifie iscase? –