Curso Scala [Parte 5]: Definición de funciones

Una función es un grupo de instrucciones que unidas forman una tarea. Es una buena práctica dividir el código en diferentes funciones gracias a las ventajas que esto tiene. Entre otras, se encuentran: modularidad, limpieza y organización del código, además de no repetir líneas de forma inútil. En Scala, como en muchos otros lenguajes, las funciones pueden ser definidas en cualquier parte del código, pero ya es cosa del programador hacerlo de manera correcta o no. En esta entrega del curso de Scala en Geeky Theory veremos cómo definir funciones, así como pasarles parámetros y devolver un determinado valor.

Declaración de funciones

Las funciones en Scala se definen de la siguiente manera: def nombreFuncion ([ parametros ]) : [return tipoDato] Es igual que crear una variable, solo que en este caso en lugar de asignar un entero se declara una función. La lista de parámetros contiene los datos que la función necesita para realizar su tarea y el return indica el tipo de dato que se va a devolver.

Definición de funciones

La definición de la función consiste en desarrollar el cuerpo de dicha función, es decir, las líneas de código que se necesitan ejecutar para realizar una determinada tarea. No es muy diferente de otros lenguajes: def nombreFuncion ([ parametros ]) : [return tipoDato] = { // Cuerpo de la función return expresion } El tipo de dato que se devuelve debe ser cualquier tipo de dato válido en Scala y en la lista de parámetros, cada uno estará separado por comas. Un sencillo ejemplo es el de crear una función que sume dos números recibidos por parámetros y devuelva el resultado: def suma (a:Int, b:Int) : Int = { var suma:Int = 0 suma = a + b return suma } La función que se acaba de definir recibe los parámetros 'a' y 'b', los suma y devuelve un entero con el resultado de la operación.

Llamada a funciones

La llamada a una función es igual que en cualquier otro lenguaje, como por ejemplo Java: nombreFuncion (parametro1, parametro2) Además, es posible llamar a una función a través de una instancia de un objeto: objeto.nombreFuncion (parametro1, parametro2) Las funciones son el corazón de la programación en Scala debido a su caracter funcional.