groovy
Funciones memoizadas
Buscar..
Funciones memorizadas
La memorización es básicamente una forma de almacenar en caché los resultados del método. Esto puede ser útil cuando a menudo se llama a un método con los mismos argumentos y el cálculo del resultado lleva tiempo, por lo tanto, aumenta el rendimiento.
A partir de Groovy 2.2, los métodos se pueden anotar con la anotación @Memoized
.
Imagina la siguiente clase:
class MemoDemo {
def timesCalculated = 0
@Memoized
def power2(a) {
timesCalculated++
a * a
}
}
Ahora, en la primera llamada de este método con un número con el que no se ha llamado antes, el método se ejecutará:
assert power2(2) == 4
assert timesCalculated == 1
Sin embargo, si lo llamamos de nuevo con el mismo argumento:
assert power2(2) == 4
assert timesCalculated == 1
timesCalculated
ha mantenido sin cambios, pero el método timesCalculated
el mismo resultado. Sin embargo, llamándolo con un argumento diferente:
assert power2(3) == 9
assert timesCalculated == 2
resultados en el cuerpo del método que se llama de nuevo.