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.
- #HowTo Upgrade the JRE 8 to 11 in Teamcity (Windows). - 2023-01-05
- #How to resolver el error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-01-03
- #HowTo Resolver error MSB4019: No se encuentra el proyecto importado Microsoft.WebApplication.targets - 2022-11-24