Resumen

Escribir funciones claras y legibles es una de las grandes fortalezas de Swift. Dominar las etiquetas de argumento, los valores por defecto y los parámetros variádicos permite crear código que prácticamente se lee como un libro, reduciendo errores y mejorando la experiencia de desarrollo.

¿Cómo funcionan las etiquetas de argumento en Swift?

Cuando defines una función con parámetros, el nombre que eliges cumple dos roles: actúa como variable interna dentro del cuerpo de la función y como etiqueta externa al momento de invocarla. Si los nombres son largos, las llamadas se vuelven incómodas [0:42].

Para resolverlo, Swift permite agregar un alias o etiqueta delante del nombre del parámetro. Por ejemplo:

swift func someFunction(f1 firstParamName: Int, f2 secondParamName: Int) { print(firstParamName + secondParamName) } someFunction(f1: 5, f2: 1)

  • firstParamName y secondParamName siguen siendo las variables internas.
  • f1 y f2 son las etiquetas cortas que usas al llamar la función.
  • El resultado es idéntico: 6, pero la llamada es mucho más compacta.

¿Por qué las etiquetas hacen que Swift se lea como un libro?

Un ejemplo muy ilustrativo es la función de saludo [2:10]. Supón que quieres saludar a una persona indicando su ciudad de origen:

swift func greeting(_ person: String, from hometown: String) -> String { return "Hola (person), un placer que nos visites desde (hometown)" } greeting("Juan Gabriel", from: "Mallorca")

  • La etiqueta from convierte la llamada en algo natural: greeting Juan Gabriel from Mallorca.
  • El guion bajo (_) elimina la etiqueta del primer parámetro, ya que es evidente que se trata de una persona.
  • El resultado final se lee de forma fluida: "Saluda a Juan Gabriel de Mallorca" [3:30].

Esta legibilidad es una de las razones por las que Swift ganó tanta popularidad. Elegir bien las etiquetas marca la diferencia entre código confuso y código que cualquier persona puede entender.

¿Qué son los valores por defecto en los parámetros?

A veces necesitas que un parámetro tenga un valor predeterminado para no obligar al usuario a especificarlo siempre [4:20]. En Swift se logra asignando directamente el valor en la firma de la función:

swift func someFunction(f1 firstParamName: Int, f2 secondParamName: Int = 6) { print(firstParamName + secondParamName) }

  • Si llamas someFunction(f1: 5), el segundo parámetro vale 6 por defecto y el resultado es 11.
  • Si llamas someFunction(f1: 5, f2: 1), sobrescribes el valor por defecto y el resultado es 6.

Esta técnica es muy útil para simplificar llamadas frecuentes sin perder flexibilidad.

¿Qué es un parámetro variádico y cuándo usarlo?

Cuando no sabes cuántos valores recibirá una función, necesitas un parámetro variádico (variadic en inglés). Se declara agregando tres puntos suspensivos (...) después del tipo de dato [5:30]. Swift interpreta ese parámetro como una colección de elementos.

El ejemplo clásico es la media aritmética:

swift func mean(_ numbers: Double...) -> Double { var total: Double = 0 for number in numbers { total += number } return total / Double(numbers.count) }

  • numbers.count devuelve la cantidad de elementos recibidos como un entero, que se convierte a Double para obtener el cociente decimal.
  • Puedes llamarla con cualquier cantidad de argumentos [6:40]:

swift mean(1, 2, 3, 4, 5) // 3.0 mean(1.5, 2.7) // 2.1 mean(3, 4.5, 18.75) // 8.75

El parámetro variádico acepta desde un solo valor hasta los que necesites, sin modificar la firma de la función.

¿Cómo practicar con la media geométrica?

Como ejercicio propuesto [7:20], puedes combinar las técnicas vistas para implementar la media geométrica: multiplica todos los valores recibidos y luego aplica la raíz enésima (raíz cuadrada si son dos números, raíz cúbica si son tres, y así sucesivamente). Es una excelente forma de reforzar parámetros variádicos junto con operaciones matemáticas en Swift.

Si ya implementaste la media aritmética, comparte tu solución de la media geométrica y compara ambos enfoques.