groovy
클로저 메모 메서드
수색…
통사론
- closure.memoize ()
- closure.memoizeAtMost (n)
- closure.memoizeAtLeast (n)
- closure.memoizeBetween (n, m)
비고
Memoization은 클로저 호출의 결과를 캐싱하는 방법입니다. 클로저에 적용된 memoize 함수는 반환 값이 입력 매개 변수에 따라 캐시되는 새 클로저를 반환합니다. 세 가지 수정 된 메모 방법의 변형에 사용되는 캐시는 LRU 캐시입니다. 즉 가장 오래 전에 사용되지 않은 요소가 먼저 캐시에서 제거됩니다.
간단한 메모
def count = 0
nonmemoized = { long n -> println "nonmemoized: $n"; count++ }
nonmemoized(1)
nonmemoized(2)
nonmemoized(2)
nonmemoized(1)
assert count == 4
def mcount = 0
memoized = { long n -> println "memoized: $n"; mcount++ }.memoize()
memoized(1)
memoized(2)
memoized(2)
memoized(1)
assert mcount == 2
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow