-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunciones-como-parametro.scala
23 lines (18 loc) · 1.09 KB
/
funciones-como-parametro.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Las funciones que admiten como entrada o que devuelven otras funciones se denominan Higher Class Funcions o Funciones de Primera Clase
// Recomiendo el siguiente artículo -> https://alvinalexander.com/scala/fp-book/how-write-functions-take-function-input-parameters/
// Ejemplo 1: función que toma como entrada una función y la devuelve como salida imprimiendo decoradores antes y después de su ejecución
object prueba {
def decorador(callback: () => Unit ) { // Esta sería la función de primera clase. 'Callback' es el nombre de la variable, '()' indica que debe ser una función y '=> Unit' que debe devolver un unit
println("======XY======")
callback()
println("==============")
}
class lugar(val coordx:Int, val coordy:Int) {
def coordenadas():Unit = { println(coordx,coordy) }
}
def main(args: Array[String]): Unit = {
val lugar1 = new lugar(645456,51554)
decorador(lugar1.coordenadas) // ======XY======
// (645456,51554)
} // ==============
}