AD

¿Ya dominas lo básico? Un curso estructurado de Ruby es la vía rápida para dar el salto.

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
Lección 38 / 68

Acelerar cálculos con memoización

En esta lección guardarás resultados ya calculados para no repetir el trabajo.

La memoización consiste en llevar un hash donde la clave es la entrada y el valor el resultado. Antes de calcular se mira si ya está; si está, se devuelve directamente.

El código de ejemplo llama tres veces con dos valores distintos, y los mensajes dejan ver cuándo calcula y cuándo recuerda.

Hay dos cosas que vigilar. La primera es la memoria: una caché que nunca se vacía crece sin límite, y en un proceso de larga vida eso acaba siendo un problema. La segunda es la corrección: si el cálculo depende de algo que puede cambiar —un dato de la base de datos, la hora— el valor guardado se queda obsoleto y devuelves información vieja sin darte cuenta. Solo es seguro memoizar funciones que dan siempre el mismo resultado para la misma entrada.

En Ruby el patrón corto y muy extendido es @valor ||= calcular, que calcula la primera vez y reutiliza después. Cuidado si el resultado legítimo puede ser nil o false: entonces recalcula cada vez, porque ||= no distingue «no calculado» de «calculado y falso».

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Ruby directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)