나는 무엇에 대한 답을 찾고 있었다 |=
Groovy의 기능 있었지만 위의 답변이 옳았지만 내가보고있는 특정 코드를 이해하는 데 도움이되지 않았습니다.
특히, 부울 변수 "| ="에 적용되면 오른쪽에서 처음식이 _ 생할 때 TRUE로 설정되고 모든 | = 후속 호출에 대해 참 값을 보유합니다. 래치처럼.
여기에 간단한 예가 있습니다.
groovy> boolean result
groovy> //------------
groovy> println result //<-- False by default
groovy> println result |= false
groovy> println result |= true //<-- set to True and latched on to it
groovy> println result |= false
산출:
false
false
true
true
편집 : 왜 이것이 유용한가요?
다양한 객체에서 변경된 사항이 있는지 알고 싶은 경우 변경 사항을 알리십시오. 따라서 hasChanges
부울을 설정 |= diff (a,b)
한 다음 |= dif(b,c)
등에 설정합니다 . 다음은 간단한 예입니다.
groovy> boolean hasChanges, a, b, c, d
groovy> diff = {x,y -> x!=y}
groovy> hasChanges |= diff(a,b)
groovy> hasChanges |= diff(b,c)
groovy> hasChanges |= diff(true,false)
groovy> hasChanges |= diff(c,d)
groovy> hasChanges
Result: true
pipe equal operator
이 질문이나 주제에 대한 다른 문서를 추가해도 사람들이 검색하는 데 도움이되지 않는지 궁금합니다 .