groovy
Закрытие Memoize Methods
Поиск…
Синтаксис
- closure.memoize ()
- closure.memoizeAtMost (п)
- closure.memoizeAtLeast (п)
- close.memoizeBetween (n, m)
замечания
Memoization - это метод кэширования результата вызова закрытия. Функция memoize, примененная к закрытию, возвращает новое закрытие, возвращаемое значение которого кэшируется в соответствии с его входными параметрами. Кэшами, используемыми для трех измененных вариантов методов memoization, являются кеши 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