English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Métodos y funciones de Scala

O

Scala tiene métodos y funciones, la diferencia semántica entre ambos es muy pequeña. El método de Scala es una parte de la clase, mientras que la función es un objeto que se puede asignar a una variable. En otras palabras, la función definida en la clase es un método.

La función en Scala es un objeto completo, la función en Scala realmente es un objeto de clase que hereda el Trait.

Scala utiliza val La instrucción puede definir una función,def definición de la instrucción.

class Test{
  def m(x: Int) = x + 3
  val f = (x: Int) => x + 3
}

Nota:En algunas traducciones, la función (function) y el método (method) no tienen diferencia.

declaración del método

El formato de declaración del método Scala es el siguiente:

def functionName([lista de parámetros]): [tipo de retorno]

si no escribe el igual y el cuerpo del método, el método se declarará implícitamente comoabstracto (abstract)que también es un tipo abstracto.

definición del método

La definición del método se realiza mediante una def las palabras clave comienzan, seguidas de una lista de parámetros opcional, un dos puntos : y el tipo de retorno del método, un igual =, y finalmente el cuerpo del método.

El formato de definición del método Scala es el siguiente:

def functionName([lista de parámetros]): [tipo de retorno] = {
   cuerpo de la función
   devuelve [expr]
}

El código anterior tipo de retorno puede ser cualquier tipo de datos Scala válido. Los parámetros de la lista de parámetros pueden estar separados por comas.

Las siguientes funciones suman y suman los dos parámetros ingresados:

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

si el método no devuelve un valor, puede devolver Unites similar a Java void, ejemplo a continuación:

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

Llamada a métodos

Scala ofrece varios métodos diferentes de llamada a métodos:

A continuación se muestra el formato estándar de llamada a métodos en Scala:

functionName( lista de parámetros )

Si el método utiliza un objeto de ejemplo para llamarlo, podemos usar un formato similar al de Java (usando . número):

[instance.]functionName( lista de parámetros )

El siguiente ejemplo muestra un ejemplo de definición y llamada a métodos:

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

Ejecutando el código anterior, el resultado de salida es:

$ scalac Test.scala 
$ scala Test
Valor devuelto: 12

Scala es también un lenguaje funcional, por lo que las funciones son el núcleo del lenguaje Scala. A continuación se presentan algunos conceptos de funciones que nos ayudarán a entender mejor la programación en Scala:

Análisis conceptual de la función y ejemplos
Llamada a función nombrada (Call)-por-Name)Nombre de parámetro de función especificado
Función - Parámetros variablesFunciones recursivas
Valores de parámetros predeterminadosFunciones de orden superior
Funciones anidadasFunciones anónimas
Funciones aplicadas parcialmenteCurrying de funciones (Function Currying)