0
다음은 많이 놀랐습니다!GEB의 Navigator.find 함수가 술어를 삭제합니다. 좋은 습관입니까?
/**
* Optimizes the selector if the predicates contains `class` or `id` keys that map to strings. Note this method has
* a side-effect in that it _removes_ those keys from the predicates map.
*/
내 질문 : 다음 문장에서 술어가
String selector = 'ul'
Map predicates = [class: 'catalog']
navigator.find predicates, selector
를 제거됩니다 나는이 문제에 대해 다음과 같은 의견을 냈다. 함수로 들어오는 데이터를 무언가로 바꾸는 것은 좋은 매너의 규칙입니다.
나는 C++에서 이러한 사례를 기억하지만 무결성의 세계 우선 순위는 함수 호출자를 희생하여 최적화 된 코드보다 높습니다!
내 프로그램에서이 동작을 만났고 실행 중에 내 정의 구조가 변경되는 이유를 알아 내기 위해 많은 시간을 보냈습니다. 메모리 누수에 대한 생각은 이미 다가오고있었습니다.