Los ejemplos se añadirán en este objeto
object Leccion1 {
def ejemplo1 = println ("Ejemplo 1 ")
val ejemplo2:()=>Unit=()=> println ("Ejemplo 2")
def main(args: Array[String]): Unit = {
val listaDescripciones= Array(
"Función definida a partir de un método",
"Función anónima almacenada en una variable")
// ejemplo1 es un método que se usa para definir una función _ => ejemplo1
// se puede definir dicha función con la sintáxis ejemplo1 _
// ejemplo2 es un nombre dado a una función anónima del tipo () => Unit
// no compila val listaFunciones=Array(ejemplo1 , ejemplo2)
val listaFunciones=Array(
ejemplo1 _,
ejemplo2)
val listaPares:Array[(String,()=>Unit )] = listaDescripciones zip listaFunciones
val numFunciones = listaPares.length
println ("Introduce un número de 1 a "+ numFunciones .toString)
val indice = readInt
println
println(listaPares(indice-1)._1)
(listaPares(indice-1)._2)()
// también listaFunciones(indice-1)()
}
}