Si tratamos de definir una función podríamos decir que es un grupo de instrucciones que nos ayudan a realizar una tarea especifica.
Para definir una función necesitamos especificar un nombre que describa lo que hace, también podemos entregar algunas variables para ayudar a procesar o a ejecutar ciertas tareas, y esta, al mismo tiempo puede regresarnos un valor como resultado de su proceso o actividades.
En Swift podemos definir a una función en su forma más básica de la siguiente manera:
func nombreFuncion() // Y puedes usarla de la siguiente manera: nombrefuncion()
Una función también puede recibir “valores” de entrada, pero bajo el contexto de función se le conocen como parámetros, puedes colocar varios parámetros escribiendo el nombre y enseguida el tipo, no se recomienda colocar muchos parámetros(+5), ya que se dificulta la lectura y el propósito de la función.
Así es como puedes crear una función que reciba parámetros:
func nombreFuncion(param1: String, param2: Int, param3: [Float]) // Esta función se usaría así: nombreFuncion(param1: "Hola", param2: 10, param3: [1.0, 2.0, 3.0])
Como comentamos al inicio una función puede regresar uno o varios valores como resultado de su ejecución, si necesitamos que nuestra función regrese un resultado, simplemente escribimos el tipo como veremos en el siguiente ejemplo:
func nombreFuncion(alumnos: [String]) -> Int // Esta función se llama de la siguiente manera: let numeroAlumnos = nombreFuncion(alumnos: ["Eduardo", "Francisco", "Daniela", "Jose"]) print(numeroAlumnos) // 4
La función anterior podría servir para sumar y regresar la cantidad total de alumnos en una clase. Por otro lado una función puede regresar varios valores usando un tuple, vemos el siguiente ejemplo:
func nombreFuncion() -> (valor1: Int, valor2: Int) // El ejemplo de uso sería el siguiente: let valores = nombreFuncion() print(valores.valor1) print(valores.valor2) // 5 // 7
Veamos algunos ejemplos de uso de las funciones, prácticamente sin estas se dificultaría mucho el desarrollo de aplicaciones móviles, así que como los conceptos anteriores este tema es indispensable para tu avance en el desarrollo de apps móviles.
Veamos esta función que nos ayuda a sumar dos números:
func sumaNumeros(num1: Int, num2: Int) -> Int { return num1 + num2 } // Esta función se llamaría asi: let resultado = sumaNumeros(num1: 5, num2: 5) print(resultado) // 10
Observa la palabra reservada return deberás colocar esta palabra cada que uses una función que retorna un valor, para este ejemplo retornara el valor que resulte de la suma de num1 y num2, parámetros que recibe la función.
Otro detalle a considerar es el tamaño de una función, cuando estamos aprendiendo a veces nuestras funciones tiende a tener un contenido muy grande, recuerda siempre pensar en funciones que tenga un objetivo concreto, si deseas resolver más sentencias usa una función adicional, esto ayudara a tener más claridad y mejor entendimiento, observemos la siguiente función:
func recargaTodosDatos() { let datosNuevos = traerDatos() if datosNuevos.count > 0 { muestraNuevosDatos(datos: datosNuevos) } else { mostrarMensaje(mensaje: "No hay información para mostrar") } } recargaDatos()
Vamos a analizar cada parte del código:
- Es el nombre de la función tiene como objetivo recargar información.
- Se crea una constante y guarda lo que la función traerDatos() genera.
- Se hace una validación para revisar si datosNuevos tiene más de 0 elementos, esto quiere decir que la función anterior si regreso información.
- Ahora se llama una función que se encargara de mostrar los nuevos datos obtenidos y recibe como parámetro datosNuevos.
- En caso de que no haya datosNuevos, se ejecuta otra función y se envía un mensaje como parámetro.
Estos son los usos más básicos para las funciones en Swift, si quieres leer un poco más acerca de las funciones puedes visitar la siguiente liga.