groovy
Metody zapamiętywania zamknięcia
Szukaj…
Składnia
- closure.memoize ()
- closure.memoizeAtMost (n)
- closure.memoizeAtLeast (n)
- closure.memoizeBetween (n, m)
Uwagi
Zapamiętywanie to metoda buforowania wyniku wywołania zamknięcia. Funkcja zapamiętywania zastosowana do zamknięcia zwraca nowe zamknięcie, którego zwracana wartość jest buforowana zgodnie z jego parametrami wejściowymi. Pamięci podręczne używane w trzech ulepszonych wariantach metod zapamiętywania to pamięci podręczne LRU, co oznacza, że ostatnio używany element jest najpierw usuwany z pamięci podręcznej.
Proste zapamiętywanie
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow