수색…


메모 기능

메모는 기본적으로 메서드 결과를 캐시하는 방법입니다. 이것은 메소드가 종종 동일한 인수로 호출되고 결과 계산에 시간이 걸리므로 유용 할 수 있습니다. 따라서 성능이 향상됩니다.

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