Lecciones de Scala

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)()
}

}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *