En aquest tema, aprendrem com definir funcions amb paràmetres i valors de retorn en Swift. Les funcions són blocs de codi reutilitzables que poden acceptar dades d'entrada (paràmetres) i retornar un resultat. Això ens permet escriure codi més modular i mantenible.
Definició de Funcions amb Paràmetres
Els paràmetres permeten passar informació a una funció. A Swift, els paràmetres es defineixen dins dels parèntesis després del nom de la funció.
Sintaxi Bàsica
Exemple
En aquest exemple, la funció saludar
accepta un paràmetre de tipus String
anomenat nom
.
Valors de Retorn
Les funcions poden retornar un valor utilitzant la paraula clau ->
seguida del tipus de retorn.
Sintaxi Bàsica
func nomDeLaFuncio(paràmetre1: Tipus1, paràmetre2: Tipus2) -> TipusDeRetorn { // Codi de la funció return valorDeRetorn }
Exemple
func sumar(a: Int, b: Int) -> Int { return a + b } let resultat = sumar(a: 5, b: 3) // resultat és 8
En aquest exemple, la funció sumar
accepta dos paràmetres de tipus Int
i retorna un valor de tipus Int
.
Paràmetres amb Nom i Sense Nom
A Swift, els paràmetres poden tenir noms externs i interns. El nom extern s'utilitza quan es crida la funció, mentre que el nom intern s'utilitza dins de la funció.
Exemple
func restar(primerNombre a: Int, segonNombre b: Int) -> Int { return a - b } let resultat = restar(primerNombre: 10, segonNombre: 4) // resultat és 6
En aquest exemple, primerNombre
i segonNombre
són els noms externs, mentre que a
i b
són els noms interns.
Paràmetres per Defecte
Swift permet definir valors per defecte per als paràmetres. Això és útil quan volem que una funció tingui valors predeterminats si no es proporcionen arguments.
Exemple
func multiplicar(a: Int, b: Int = 2) -> Int { return a * b } let resultat1 = multiplicar(a: 3) // resultat1 és 6 let resultat2 = multiplicar(a: 3, b: 4) // resultat2 és 12
En aquest exemple, el paràmetre b
té un valor per defecte de 2
.
Paràmetres Variàdics
Els paràmetres variàdics permeten passar un nombre variable d'arguments a una funció. Aquests arguments es tracten com una matriu del tipus especificat.
Exemple
func sumarTots(_ nombres: Int...) -> Int { var suma = 0 for nombre in nombres { suma += nombre } return suma } let resultat = sumarTots(1, 2, 3, 4, 5) // resultat és 15
En aquest exemple, la funció sumarTots
accepta un nombre variable d'arguments de tipus Int
.
Exercicis Pràctics
Exercici 1
Escriu una funció anomenada multiplicar
que accepti dos paràmetres a
i b
de tipus Int
i retorni el seu producte.
Solució
func multiplicar(a: Int, b: Int) -> Int { return a * b } let resultat = multiplicar(a: 4, b: 5) // resultat és 20
Exercici 2
Escriu una funció anomenada saludar
que accepti un paràmetre nom
de tipus String
i un paràmetre opcional missatge
de tipus String
amb un valor per defecte de "Hola". La funció ha de retornar una cadena que combini el missatge i el nom.
Solució
func saludar(nom: String, missatge: String = "Hola") -> String { return "\(missatge), \(nom)!" } let salutacio1 = saludar(nom: "Anna") // salutacio1 és "Hola, Anna!" let salutacio2 = saludar(nom: "Anna", missatge: "Bon dia") // salutacio2 és "Bon dia, Anna!"
Resum
En aquesta secció, hem après com definir funcions amb paràmetres i valors de retorn a Swift. Hem vist com utilitzar paràmetres amb nom i sense nom, paràmetres per defecte i paràmetres variàdics. També hem practicat amb alguns exercicis per reforçar els conceptes apresos. En la següent secció, explorarem les closures, una característica poderosa de Swift per treballar amb funcions com a valors.
Curs de Programació en Swift
Mòdul 1: Introducció a Swift
- Introducció a Swift
- Configuració de l'Entorn de Desenvolupament
- El Teu Primer Programa en Swift
- Sintaxi i Estructura Bàsica
- Variables i Constants
- Tipus de Dades
Mòdul 2: Flux de Control
Mòdul 3: Funcions i Closures
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Closures
- Funcions d'Ordre Superior
Mòdul 4: Programació Orientada a Objectes
Mòdul 5: Swift Avançat
Mòdul 6: Swift i Desenvolupament iOS
- Introducció al Desenvolupament iOS
- Conceptes Bàsics de UIKit
- Storyboards i Interface Builder
- Xarxes en Swift
- Core Data
- Conceptes Bàsics de SwiftUI