En Swift, una función es una colección de declaraciones agrupadas para realizar una tarea específica. Una función puede contener o no un tipo de retorno. El tipo de retorno de la función decide el tipo de valor devuelto por una función. Por ejemplo, si queremos devolver un valor entero de una función, el tipo de retorno de la función debe ser Int, si queremos devolver un valor decimal de una función, el retorno de la función debe ser Flotante o Doble, etc. Podemos declarar una función en Swift con la ayuda de la palabra clave “ func ”. La sintaxis general de una función en Swift se da a continuación,
Sintaxis:
func myFunction(parámetros (opcional) ) -> returnType (opcional)
{
// cuerpo
}
La función también contiene parámetros. Un parámetro es una variable que se define durante la declaración o definición de una función. De forma predeterminada, los parámetros pasados a una función en Swift son parámetros constantes. Por constante queremos decir que el valor representado por ellos no se puede cambiar. Si intenta cambiar, el compilador dará un error.
Ejemplo:
func myFunction(num1: Int, num2: Int)
{
// cuerpo
}
Aquí, num1 y num2 son los parámetros de la función. Entonces, para modificar el valor de los parámetros, use parámetros in-out. Entonces, en este artículo, nos enfocamos en los parámetros de entrada y salida utilizados en Swift.
Parámetros de entrada:
Supongamos que tenemos una función que acepta una serie de parámetros y queremos realizar cambios en los valores de esos parámetros. Además, estos cambios también deben reflejarse fuera de la función. En tales escenarios, podemos usar parámetros de entrada y salida. Significa que pasamos el valor de los parámetros en la función y lo pasamos fuera de la función para reemplazar el valor original de los parámetros. Los parámetros de entrada y salida siguen la misma sintaxis que hemos visto anteriormente en la sección, excepto que tenemos que especificar explícitamente » inout” palabra clave justo antes del tipo de datos y al llamar a la función tenemos que usar un ampersand (&) antes de los parámetros. Ampersand(&) le dice explícitamente al compilador que queremos modificar estos valores dentro de la función. Otra razón para usar Ampersand (&) es que queremos usar un alias para los parámetros existentes en lugar de hacer copias.
Sintaxis:
func myFunction(num1: int int, num2: int int)
{
// cuerpo
}
Ejemplo 1:
En el siguiente programa, estamos intercambiando dos números enteros usando una tercera variable especificando parámetros de entrada y salida. Aquí, num1 y num2 se declaran como in-out para que podamos modificarlos.
Swift
// Swift program to demonstrate the working of in-out parameters // Using in-out parameters in myFunction func myFunction(_ num1: inout Int, _ num2: inout Int) { // Swapping num1 and num2 // by using a third variable let temp = num1 num1 = num2 num2 = temp } // Initializing integers var num1 = 10 var num2 = 20 // Before swapping print("Before swapping:") print("num1 is \(num1) and num2 is \(num2)") myFunction(&num1, &num2) // After swapping print("\nAfter swapping:") print("num1 is \(num1) and num2 is \(num2)")
Producción:
Before swapping: num1 is 10 and num2 is 20 After swapping: num1 is 20 and num2 is 10
Ejemplo 2:
En el programa a continuación, estamos intercambiando dos strings usando una tercera variable especificando parámetros de entrada y salida. Aquí, string1 y string2 se declaran como in-out para que podamos modificarlos.
Swift
// Swift program to demonstrate the // working of in-out parameters // Using in-out parameters in myFunction func myFunction(_ string1: inout String, _ string2: inout String) { // Swapping string1 and string2 // by using a third variable let temp = string1 string1 = string2 string2 = temp } // Initializing strings var string1 = "GeeksforGeeks" var string2 = "Geeks" // Before swapping print("Before swapping:") print("string1 is \(string1) and string2 is \(string2)") myFunction(&string1, &string2) // After swapping print("\nAfter swapping:") print("string1 is \(string1) and string2 is \(string2)")
Producción:
Before swapping: string1 is GeeksforGeeks and string2 is Geeks After swapping: string1 is Geeks and string2 is GeeksforGeeks