En Swift, las funciones son bloques de código reutilizables que realizan una tarea específica. Las funciones pueden aceptar parámetros y devolver valores. En esta sección, aprenderemos cómo definir y utilizar parámetros de función y valores de retorno.

Definición de Funciones con Parámetros

Los parámetros permiten que las funciones reciban datos de entrada. Aquí hay un ejemplo básico de una función con parámetros:

func greet(name: String) {
    print("Hello, \(name)!")
}

Explicación:

  • func: Palabra clave para definir una función.
  • greet: Nombre de la función.
  • (name: String): Parámetro de la función. name es el nombre del parámetro y String es su tipo.
  • print("Hello, \\(name)!"): Cuerpo de la función que imprime un saludo.

Llamada a la Función con Parámetros

Para llamar a una función con parámetros, simplemente pasamos los valores correspondientes:

greet(name: "Alice")
// Output: Hello, Alice!

Valores de Retorno

Las funciones pueden devolver valores utilizando la palabra clave return. Aquí hay un ejemplo de una función que devuelve un valor:

func add(a: Int, b: Int) -> Int {
    return a + b
}

Explicación:

  • -> Int: Indica que la función devuelve un valor de tipo Int.
  • return a + b: Devuelve la suma de a y b.

Llamada a la Función con Valores de Retorno

Para utilizar el valor devuelto por una función, podemos asignarlo a una variable:

let sum = add(a: 5, b: 3)
print(sum)
// Output: 8

Parámetros con Valores Predeterminados

Swift permite definir valores predeterminados para los parámetros. Esto es útil cuando queremos que algunos parámetros sean opcionales:

func greet(name: String, greeting: String = "Hello") {
    print("\(greeting), \(name)!")
}

greet(name: "Bob")
// Output: Hello, Bob!

greet(name: "Bob", greeting: "Hi")
// Output: Hi, Bob!

Explicación:

  • greeting: String = "Hello": El parámetro greeting tiene un valor predeterminado de "Hello".

Parámetros Variádicos

Los parámetros variádicos permiten pasar un número variable de argumentos a una función:

func sum(numbers: Int...) -> Int {
    var total = 0
    for number in numbers {
        total += number
    }
    return total
}

let totalSum = sum(numbers: 1, 2, 3, 4, 5)
print(totalSum)
// Output: 15

Explicación:

  • numbers: Int...: El parámetro numbers puede aceptar cero o más valores de tipo Int.

Parámetros In-Out

Los parámetros in-out permiten que una función modifique el valor de un parámetro. Se utilizan con la palabra clave inout:

func increment(value: inout Int) {
    value += 1
}

var number = 10
increment(value: &number)
print(number)
// Output: 11

Explicación:

  • inout: Indica que el parámetro value puede ser modificado por la función.
  • &number: El símbolo & se utiliza para pasar el argumento como in-out.

Ejercicios Prácticos

Ejercicio 1: Función con Parámetros y Valor de Retorno

Escribe una función llamada multiply que acepte dos parámetros de tipo Double y devuelva su producto.

func multiply(a: Double, b: Double) -> Double {
    return a * b
}

// Prueba tu función
let result = multiply(a: 3.5, b: 2.0)
print(result) // Output: 7.0

Ejercicio 2: Función con Parámetros Predeterminados

Escribe una función llamada greetUser que acepte un parámetro name de tipo String y un parámetro opcional greeting de tipo String con un valor predeterminado de "Welcome".

func greetUser(name: String, greeting: String = "Welcome") {
    print("\(greeting), \(name)!")
}

// Prueba tu función
greetUser(name: "Charlie") // Output: Welcome, Charlie!
greetUser(name: "Charlie", greeting: "Hello") // Output: Hello, Charlie!

Ejercicio 3: Función con Parámetros Variádicos

Escribe una función llamada average que acepte un número variable de parámetros de tipo Double y devuelva su promedio.

func average(numbers: Double...) -> Double {
    let total = numbers.reduce(0, +)
    return total / Double(numbers.count)
}

// Prueba tu función
let avg = average(numbers: 1.0, 2.0, 3.0, 4.0, 5.0)
print(avg) // Output: 3.0

Conclusión

En esta sección, hemos aprendido cómo definir y utilizar parámetros de función y valores de retorno en Swift. Hemos cubierto:

  • Definición de funciones con parámetros.
  • Uso de valores de retorno.
  • Parámetros con valores predeterminados.
  • Parámetros variádicos.
  • Parámetros in-out.

Estos conceptos son fundamentales para escribir funciones flexibles y reutilizables en Swift. En la próxima sección, exploraremos los closures, una característica poderosa y versátil del lenguaje Swift.

© Copyright 2024. Todos los derechos reservados