수색…
메모 기능
메모는 기본적으로 메서드 결과를 캐시하는 방법입니다. 이것은 메소드가 종종 동일한 인수로 호출되고 결과 계산에 시간이 걸리므로 유용 할 수 있습니다. 따라서 성능이 향상됩니다.
Groovy 2.2부터는 메소드가 @Memoized
주석으로 주석 처리 될 수 있습니다.
다음과 같은 클래스를 상상해보십시오 :
class MemoDemo {
def timesCalculated = 0
@Memoized
def power2(a) {
timesCalculated++
a * a
}
}
이제 이전에 호출 된 적이없는 번호를 가진이 메소드의 첫 번째 호출에서 메소드가 실행됩니다.
assert power2(2) == 4
assert timesCalculated == 1
그러나 같은 인수로 다시 호출하면 :
assert power2(2) == 4
assert timesCalculated == 1
timesCalculated
는 변경되지 않았지만이 메서드는 동일한 결과를 반환했습니다. 그러나 다른 인수로 호출 :
assert power2(3) == 9
assert timesCalculated == 2
메서드 본문이 다시 호출됩니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow