groovy
Zapamiętane funkcje
Szukaj…
Zapamiętane funkcje
Zapamiętywanie jest w zasadzie sposobem buforowania wyników metody. Może to być przydatne, gdy metoda jest często wywoływana z tymi samymi argumentami, a obliczenie wyniku zajmuje czas, zwiększając w ten sposób wydajność.
Począwszy od Groovy 2.2, metody mogą być @Memoized
adnotacją @Memoized
adnotacja.
Wyobraź sobie następującą klasę:
class MemoDemo {
def timesCalculated = 0
@Memoized
def power2(a) {
timesCalculated++
a * a
}
}
Teraz przy pierwszym wywołaniu tej metody z numerem, z którym nie była wcześniej wywoływana, metoda zostanie wykonana:
assert power2(2) == 4
assert timesCalculated == 1
Jeśli jednak wywołamy to ponownie z tym samym argumentem:
assert power2(2) == 4
assert timesCalculated == 1
timesCalculated
pozostał niezmieniony, ale metoda zwróciła ten sam wynik. Jednak nazywając to innym argumentem:
assert power2(3) == 9
assert timesCalculated == 2
powoduje ponowne wywołanie treści metody.
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