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 8En 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 6En 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 12En 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 15En 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 20Exercici 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
