#Kata By-Val y By-Name parameters en Scala.

En este post te voy a explicar la diferencia entre los parámetros By-Val y los By-Name en Scala.

Antes de empezar.

En Scala todos los  parámetros son evaluados By-Val por defecto. Esto significa que son evaluados una vez, cuando el parámetro es pasado a la función. Los parámetros By-Name son evaluados en el cuerpo de la función, si y solo si, son usados.

No confundas el asignar los nombres de parámetros para cambiar el orden o cantidad de argumentos en la función. Eso es otra cosa.

¿Como declarar un argumento By-Val?.

No tienes que hacer nada para declarar argumentos By-Val, la declaración actual.

¿Como declarar un argumento By-Name?

Para declarar un argumento By-Name debes agregar «=>» después del nombre del argumento.

¿Cuándo debo utilizar By-Name?

La respuesta es: cuando el argumento sea muy costoso de  evaluar o requiera ser evaluado con cada llamada. No hay una respuesta exacta, todo depende del contexto.

Ejemplo:

Producir un ejemplo que muestre la diferencia entre By-Val y By-Name es difícil, la diferencia no se nota. Todos los ejemplos, y el mío, emplean nanoTime para mostrar como un valor es evaluado, una vez con val y N veces con name.

Gustavo Sánchez
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.