Saltar al contenido

Scala – Funciones

octubre 21, 2021

Una función es un grupo de declaraciones que realizan una tarea. Puede dividir su código en funciones separadas. La forma en que divide su código entre las diferentes funciones depende de usted, pero lógicamente, la división generalmente es para que cada función realice una tarea específica.

Scala tiene funciones y métodos y usamos los términos método y función indistintamente con una pequeña diferencia. Un método Scala es parte de una clase que tiene un nombre, una firma, opcionalmente algunas anotaciones y algún código de bytes, donde como función en Scala es un objeto completo que puede asignarse a una variable. En otras palabras, una función, que se define como miembro de algún objeto, se llama método.

Una definición de función puede aparecer en cualquier lugar de un archivo fuente y Scala permite definiciones de funciones anidadas, es decir, definiciones de funciones dentro de otras definiciones de funciones. El punto más importante a tener en cuenta es que el nombre de la función de Scala puede tener caracteres como & plus ;, & plus; & plus ;, ~, &, -, -, , /,:, etc.

Declaraciones de funciones

Una declaración de función de Scala tiene la siguiente forma:

def functionName ([list of parameters]) : [return type]

Los métodos se declaran implícitamente abstracto si no usa el signo igual y el cuerpo del método.

Definiciones de funciones

Una definición de función de Scala tiene la siguiente forma:

Sintaxis

def functionName ([list of parameters]) : [return type] = {
   function body
   return [expr]
}

Aquí, tipo de retorno podría ser cualquier tipo de datos Scala válido y lista de parámetros será una lista de variables separadas por comas y la lista de parámetros y el tipo de retorno son opcionales. Muy similar a Java, un regreso La declaración se puede usar junto con una expresión en caso de que la función devuelva un valor. A continuación se muestra la función que sumará dos enteros y devolverá su suma:

Sintaxis

object add {
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b
      return sum
   }
}

Una función que no devuelve nada puede devolver un Unidad que es equivalente a vacío en Java e indica que la función no devuelve nada. Las funciones que no devuelven nada en Scala se denominan procedimientos.

Sintaxis

Aquí está la sintaxis:

object Hello{
   def printMe( ) : Unit = {
      println("Hello, Scala!")
   }
}

Funciones de llamada

Scala proporciona una serie de variaciones sintácticas para invocar métodos. A continuación se muestra la forma estándar de llamar a un método:

functionName( list of parameters )

Si se llama a una función usando una instancia del objeto, entonces usaríamos notación de puntos similar a Java de la siguiente manera:

[instance.]functionName( list of parameters )

Pruebe el siguiente programa de ejemplo para definir y luego llame a la misma función.

Ejemplo

object Demo {
   def main(args: Array[String]) {
      println( "Returned Value : " + addInt(5,7) );
   }
   
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b

      return sum
   }
}

Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.

Mando

>scalac Demo.scala
>scala Demo

Producción

Returned Value : 12

Las funciones de Scala son el corazón de la programación de Scala y por eso se asume que Scala es un lenguaje de programación funcional. A continuación se presentan algunos conceptos importantes relacionados con las funciones de Scala que un programador de Scala debería comprender.

close