Groovy "in"연산자는 다른 경우를 의미하는 것으로 보입니다. 경우에 따라 x in y
은 y.contains(x)
을 의미하고 때로는 y.isCase(x)
을 호출하는 것으로 보입니다.그루비 연산자는 어떻게 작동합니까?
Groovy는 어떤 것을 호출해야하는지 어떻게 알 수 있습니까? Groovy가 .contains 메소드를 사용하는 특정 클래스 또는 클래스 집합을 알고 있습니까? 아니면 개체 중 하나에 메서드가 존재하여 트리거되는 동작입니까? in 연산자가 완전히 다른 것으로 변경되는 경우가 있습니까?
좋습니다. "in"과 isCase의 관계에 대해 혼란스러워했습니다. 지금은 컨테이너를 사례 레이블로 사용할 때 의미가 있음을 알 수 있습니다. in 연산자에 대한 isCase 재사용은 다소 놀랍습니다. String == true에서 'asdf'와 같은 예상치 못한 표현식을 허용하기 때문입니다. – ataylor
이것은 맞지만 Groovy 측에서는 열악합니다. 사례 문 동작과 요소를 포함하는 것은 컬렉션과 동일한 로직을 사용하지만 다른 상황에서는 매우 다릅니다. 예를 들어 다음과 같은 어설 션은 통과하지 않습니다. 'buns'에 'b'를 지정하십시오. 이것은 말하기에 직관적이지 못합니다. –
누구나 간단하게 무엇을 말해 줄 수 있습니까? –