metafora - ¿Qué es una función literal en Scala?
metafora juridica ejemplos (2)
Podría ser útil comparar literales de función con otros tipos de literales en Scala. Literals son azúcares notacionales para representar valores de algunos tipos que el lenguaje considera particularmente importantes. Scala tiene literales enteros, literales de caracteres, literales de cadena, etc. Scala trata las funciones como valores de primera clase representables en el código fuente por literales de función. Estos valores de función habitan en un tipo de función especial. Por ejemplo,
-
5
es un literal entero que representa un valor en el tipoInt
-
''a''
es un literal de carácter que representa un valor en tipoChar
-
(x: Int) => x + 2
es una función literal que representa un valor enInt => Int
tipo de función
Los literales a menudo se usan como valores anónimos, es decir, sin vincularlos a una variable nombrada primero. Esto ayuda a que el programa sea más conciso y es apropiado cuando el literal no debe ser reutilizable. Por ejemplo:
List(1,2,3).filter((x: Int) => x > 2)
contra
val one: Int = 1
val two: Int = 2
val three: Int = 3
val greaterThan2: (Int => Int) = (x: Int) => x > two
List(one,two,three).filter(greaterThan2)
¿Qué es una función literal en Scala y cuándo debo usarlas?
Un literal de función es una sintaxis alternativa para definir una función. Es útil para cuando desea pasar una función como un argumento a un método (especialmente uno de orden superior, como una operación de pliegue o filtro), pero no desea definir una función separada. Las funciones literales son anónimas: no tienen un nombre por defecto, pero puedes asignarles un nombre vinculándolos a una variable. Una función literal se define así:
(a:Int, b:Int) => a + b
Puedes vincularlas a variables:
val add = (a:Int, b:Int) => a + b
add(1, 2) // Result is 3
Como dije antes, las funciones literales son útiles para pasar como argumentos a funciones de orden superior. También son útiles para definir funciones de una sola línea o de ayuda anidadas dentro de otras funciones.
A Tour of Scala proporciona una referencia bastante buena para los literales de función (los llaman funciones anónimas).