En este tema, aprenderemos sobre las funciones y métodos en Scala, que son fundamentales para escribir código modular y reutilizable. Veremos cómo definir y utilizar funciones, la diferencia entre funciones y métodos, y algunos conceptos avanzados como funciones de orden superior y funciones anónimas.

Contenido

  1. Definición de Funciones
  2. Definición de Métodos
  3. Diferencias entre Funciones y Métodos
  4. Ejemplos Prácticos
  5. Ejercicios

  1. Definición de Funciones

En Scala, una función es un objeto que puede ser asignado a una variable, pasado como argumento a otra función, o devuelto como resultado de una función. Las funciones se definen utilizando la palabra clave def.

Sintaxis Básica

def nombreFuncion(param1: Tipo1, param2: Tipo2): TipoRetorno = {
  // cuerpo de la función
  valorRetorno
}

Ejemplo

def suma(a: Int, b: Int): Int = {
  a + b
}

val resultado = suma(3, 4)
println(resultado) // Imprime: 7

En este ejemplo, hemos definido una función suma que toma dos parámetros de tipo Int y devuelve un valor de tipo Int.

  1. Definición de Métodos

Un método en Scala es similar a una función, pero está asociado a un objeto o clase. Los métodos también se definen utilizando la palabra clave def.

Sintaxis Básica

class MiClase {
  def nombreMetodo(param1: Tipo1, param2: Tipo2): TipoRetorno = {
    // cuerpo del método
    valorRetorno
  }
}

Ejemplo

class Calculadora {
  def suma(a: Int, b: Int): Int = {
    a + b
  }
}

val calc = new Calculadora()
val resultado = calc.suma(3, 4)
println(resultado) // Imprime: 7

En este ejemplo, hemos definido una clase Calculadora con un método suma que realiza la misma operación que la función suma del ejemplo anterior.

  1. Diferencias entre Funciones y Métodos

Característica Funciones Métodos
Definición def nombreFuncion def nombreMetodo
Asociación Independiente Asociado a un objeto o clase
Llamada nombreFuncion(args) objeto.nombreMetodo(args)
Asignación a Variable No

  1. Ejemplos Prácticos

Función como Parámetro

def aplicarOperacion(a: Int, b: Int, operacion: (Int, Int) => Int): Int = {
  operacion(a, b)
}

val suma = (x: Int, y: Int) => x + y
val resultado = aplicarOperacion(3, 4, suma)
println(resultado) // Imprime: 7

Método en una Clase

class Operaciones {
  def multiplicar(a: Int, b: Int): Int = {
    a * b
  }
}

val op = new Operaciones()
val resultado = op.multiplicar(3, 4)
println(resultado) // Imprime: 12

  1. Ejercicios

Ejercicio 1: Definir una Función

Define una función llamada resta que tome dos parámetros de tipo Int y devuelva la resta de ambos.

def resta(a: Int, b: Int): Int = {
  // Tu código aquí
}

Ejercicio 2: Definir un Método

Define una clase Matematica con un método dividir que tome dos parámetros de tipo Int y devuelva la división del primero por el segundo.

class Matematica {
  def dividir(a: Int, b: Int): Int = {
    // Tu código aquí
  }
}

Soluciones

Solución Ejercicio 1

def resta(a: Int, b: Int): Int = {
  a - b
}

val resultado = resta(10, 4)
println(resultado) // Imprime: 6

Solución Ejercicio 2

class Matematica {
  def dividir(a: Int, b: Int): Int = {
    a / b
  }
}

val mat = new Matematica()
val resultado = mat.dividir(12, 3)
println(resultado) // Imprime: 4

Conclusión

En esta sección, hemos aprendido a definir y utilizar funciones y métodos en Scala. Hemos visto la sintaxis básica, las diferencias entre funciones y métodos, y hemos trabajado con ejemplos prácticos. Ahora estás preparado para avanzar a temas más complejos como las funciones de orden superior y las funciones anónimas.

© Copyright 2024. Todos los derechos reservados