Una función es una pieza de código que se utiliza para realizar alguna tarea específica. Al igual que otros lenguajes de programación, Swift también tiene funciones y la función tiene su nombre, lista de parámetros y valor de retorno. Su sintaxis es lo suficientemente flexible para crear funciones simples y complejas. Todas las funciones en Swift tienen un tipo, lo que hace que la función sea mucho más fácil de pasar una función como parámetro a otra función o devolver una función de otra función o crear funciones anidadas. Una función se define usando la palabra clave func . Y puede llamar a una función simplemente por su nombre.
Sintaxis:
func functionName(ParameterName: type) ->returnType{
// Cuerpo de la función
}
Ahora discutiremos cómo funciona la función con o sin parámetros y valores de retorno.
Función sin parámetros y valor de retorno
En Swift, una función se puede definir sin parámetros y valor de retorno. Esta función devuelve el mismo valor cada vez que se llaman. La definición de la función aún requiere paréntesis vacíos con el nombre incluso cuando se llama a la función.
Sintaxis:
func nombreFunción(){
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function Without Parameters // and Return Value import Swift // Creating a function // Without any parameter and return value func geeksforgeeks(){ print("Lets learn something new!!") } // Calling the function geeksforgeeks()
Producción:
Lets learn something new!!
Función con valor devuelto y sin parámetro
En Swift, una función se puede definir con un valor de retorno y sin un parámetro. Este tipo de función devuelve el mismo tipo de valor cada vez que se llama y no puede permitir que el control abandone la parte inferior de la función sin devolver un valor si lo intenta, obtendrá un error de tiempo de compilación. La definición de la función aún requiere paréntesis vacíos seguidos de un tipo de retorno y podemos llamar a ese tipo de función con su nombre seguido de paréntesis vacíos.
Sintaxis:
func functionName()->ReturnValue{
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function With Return Value // and Without Parameter import Swift // Creating a function with return value // and without Parameter func geeksforgeeks() -> String{ return "Lets learn something new!!" } // Calling the function let display = geeksforgeeks() // Displaying the results print(display)
Producción:
Lets learn something new!!
Función con parámetro y sin valor de retorno
En Swift, una función se puede definir con un parámetro y sin un valor de retorno. Este tipo de función no contiene un valor de retorno en la definición de la función. Aunque este tipo de función no está definida con un valor de retorno, aún así devolverá un valor especial de tipo void. Cuando llamamos a este tipo de función, el valor devuelto puede ignorarse.
Sintaxis:
func functionName(parameterName: type){
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function With Parameter import Swift // Creating a function with parameter func geeksforgeeks(stat: String){ print(stat) } // Calling the function geeksforgeeks(stat: "Lets learn something new!!")
Producción:
Lets learn something new!!
Función con un parámetro y valor de retorno
En Swift, una función se puede definir con un parámetro y un valor de retorno. Este tipo de definición de función contiene tanto parámetros como el valor de retorno. Aquí, el valor de retorno de la función no se puede ignorar y no se puede permitir que el control abandone la parte inferior de la función sin devolver un valor; si lo intenta, obtendrá un error en tiempo de compilación. No es necesario que el tipo de datos del parámetro y el tipo de retorno sean similares.
Sintaxis:
func functionName(parameterName: type) -> returnValue{
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function With // parameter and return value import Swift // Creating a function with parameter // and return value func geeksforgeeks(bonus: Int) -> Int{ let empsalary = bonus + 20000 return empsalary } // Calling the function var updatedData = geeksforgeeks(bonus: 1000) // Display the updated salary print("New salary: ", updatedData)
Producción:
New salary: 21000
Función con múltiples parámetros y valor de retorno único
En Swift, una función se puede definir con múltiples parámetros y un valor de retorno. En este tipo de función, la definición contiene múltiples parámetros separados por comas entre paréntesis y el valor de retorno.
Sintaxis:
func functionName(parameterName1: tipo, parámetroName2: tipo, parámetroName3: tipo) -> returnValue{
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function With // multiple parameters and a return value import Swift // Creating a function with multiple parameters // and a return value func geeksforgeeks(newArticle: Int, OldArticle: Int) -> Int{ let ArticleCount = newArticle + OldArticle return ArticleCount } // Calling the function var updatedData = geeksforgeeks(newArticle: 30, OldArticle: 230) // Display the updated data print("Total count of the Articles: ", updatedData)
Producción:
Total count of the Articles: 260
Función con parámetro único y múltiples valores de retorno
En Swift, una función se puede definir con un parámetro y múltiples valores de retorno. En este tipo de función, la definición contiene un parámetro y múltiples valores de retorno separados por comas entre paréntesis. Aquí, Swift usa el tipo de tupla como tipo de devolución para devolver múltiples valores como parte de una sola unidad o compuesto. En la tupla, también podemos proporcionar la etiqueta a cada valor devuelto para que se pueda acceder a ellos utilizando su nombre con la ayuda de la sintaxis de puntos. Además, recuerde que no es necesario proporcionar los nombres de los miembros de la tupla cuando la función los devuelve porque sus nombres ya están especificados en la parte de tipo de devolución de la función.
Sintaxis:
func functionName(parameterName: tipo) -> (returnValueName1: tipo, returnValueName2: tipo, returnValueName3: tipo){
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function With // a parameter and multiple return values import Swift // Creating a function with a parameter // and multiple return values. // This function is used to find the minimum // and maximum salary of the employees func geeksforgeeks(ESalary: [Int]) -> (minSalary: Int, maxSalary: Int){ // Creating two variables that contains the // value of first integer in the array var MinValue = ESalary[0] var MaxValue = ESalary[0] // Iterate the array to find the minimum // and maximum value for newValue in ESalary[1..<ESalary.count]{ if newValue < MinValue{ MinValue = newValue } if newValue > MaxValue{ MaxValue = newValue } } // Returning the minimum and maximum values // that we find from the array return(MinValue, MaxValue) } // Calling the function var updatedData = geeksforgeeks(ESalary: [23000, 15000, 450000, 50000, 12000]) // Display the minimum salary print("Minimum salary of the GEmployee: ", updatedData.minSalary) // Display the maximum salary print("Maximum salary of the GEmployee: ", updatedData.maxSalary)
Producción:
Minimum salary of the GEmployee: 12000 Maximum salary of the GEmployee: 450000
Función con múltiples parámetros y valores de retorno
En Swift, una función se puede definir con múltiples parámetros y valores de retorno. En este tipo de función, la definición contiene múltiples parámetros y valores de retorno separados por comas entre paréntesis. Aquí, Swift usa el tipo de tupla como tipo de devolución para devolver múltiples valores como parte de una sola unidad o compuesto. En la tupla, también podemos proporcionar la etiqueta a cada valor devuelto para que se pueda acceder a ellos utilizando su nombre con la ayuda de la sintaxis de puntos.
Sintaxis:
func functionName(parameterName1: tipo, parámetroName2: tipo, parámetroName3: tipo) -> (returnValueName1: tipo, returnValueName2: tipo, returnValueName3: tipo){
// Cuerpo de la función
}
Ejemplo:
Swift
// Swift program to illustrate Function With // multiple parameters and return values import Swift // Creating a function with multiple parameters // and multiple return values. func geeksforgeeks(EName: String, EAge: Int, ESalary: Int) -> (FullName: String, CurrentAge: Int, CurrentSalary: Int){ // Updating old data let FullName = EName + " Singh" let NewAge = EAge + 1 let NewSalary = ESalary + 2000 // Returning multiple values return(FullName, NewAge, NewSalary) } // Calling the function var updatedData = geeksforgeeks(EName: "Sumit", EAge: 23, ESalary: 23000) // Display the full name print("Full name of the GEmployee: ", updatedData.FullName) // Display the current age print("Current age of the GEmployee: ", updatedData.CurrentAge) // Display the current salary print("Current salary of the GEmployee: ", updatedData.CurrentSalary)
Producción:
Full name of the GEmployee: Sumit Singh Current age of the GEmployee: 24 Current salary of the GEmployee: 25000
Función con tipo de devolución de tupla opcional
En Swift, una función se puede definir con un tipo de retorno de tupla opcional. En tal tipo de función, se devolverá un tipo de tupla de una función que no tiene valor para la tupla completa o podemos decir que la tupla completa es nula. En una definición de función, para definir un tipo de devolución de tupla opcional, simplemente coloque un signo de interrogación después de cerrar el paréntesis (como se muestra en la siguiente sintaxis).
Sintaxis:
func functionName(parameterName: tipo) ->(returnValueName1: tipo, returnValueName2: tipo)? {
// Cuerpo de la función
}
¿Recuerda siempre el tipo de tupla opcional, por ejemplo (String, String)? es diferente de la tupla que contiene tipos opcionales, por ejemplo (¿string?, ¿string?). Aquí toda la tupla es opcional, no el valor individual de la tupla. El uso del tipo de devolución de tupla opcional se explica en el siguiente ejemplo. En el siguiente ejemplo, si no usamos un tipo de devolución de tupla opcional, obtendremos un error al intentar acceder a ESalary[0]. Para manejar arrays vacías de forma segura, usamos un tipo de retorno de tupla opcional.
Ejemplo:
Swift
// Swift program to illustrate Function With // Optional Tuple Return Type import Swift // Creating a function with Optional Tuple Return Type // This function will return nil when the given array is empty func geeksforgeeks(ESalary: [Int]) -> (minSalary: Int, maxSalary: Int)?{ // If the given array is empty then return nil if ESalary.isEmpty { return nil } // Creating two variables that contains the // value of first integer in the array var MinValue = ESalary[0] var MaxValue = ESalary[0] // Iterate the array to find the minimum // and maximum value for newValue in ESalary[1..<ESalary.count]{ if newValue < MinValue{ MinValue = newValue } if newValue > MaxValue{ MaxValue = newValue } } // Returning the minimum and maximum data // that we find from the ESalary array return(MinValue, MaxValue) } // Calling the function var updatedData = geeksforgeeks(ESalary: []) print("Given array : ", updatedData)
Producción:
Given array : nil
Función con un tipo de retorno implícito
En Swift, todo el cuerpo de la función se puede definir como una sola expresión. Este tipo de función devuelve implícitamente la expresión especificada. Puede eliminar la palabra clave de retorno si la función está escrita como una línea de retorno. Recuerde siempre que el valor de retorno implícito debe devolver algo. No está permitido usar simplemente imprimir («geeksforgeeks») como un valor de retorno implícito, aunque puede usar funciones que nunca regresan como un valor de retorno implícito, por ejemplo, fatalError(), etc.
Sintaxis:
func functionName(parameterName: type) -> returnValue{
// Expresión
}
Ejemplo:
Swift
// Swift program to illustrate Function With an Implicit Return Type import Swift // Creating a function with an Implicit Return Type func geeksforgeeks(for EAuthor: String) -> String{ "Geek of the Month is " + EAuthor + " !!Congratulations!!" } // Calling the function and displaying the final result print(geeksforgeeks(for: "Mohit"))
Producción:
Geek of the Month is Mohit !!Congratulations!!
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA