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.
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20