Les funcions són blocs de codi que realitzen una tasca específica i poden ser reutilitzats en diferents parts del programa. En Go, les funcions són elements fonamentals que permeten estructurar el codi de manera modular i clara.
Continguts
Definició de Funcions
Una funció en Go es defineix amb la paraula clau func
, seguida del nom de la funció, els paràmetres entre parèntesis i el tipus de valor de retorn (si n'hi ha). El cos de la funció es troba entre claus {}
.
Exemple
package main import "fmt" // Definició d'una funció simple que no rep paràmetres ni retorna valors func saluda() { fmt.Println("Hola, món!") } func main() { saluda() // Crida a la funció }
Explicació
func saluda() { ... }
: Defineix una funció anomenadasaluda
que no rep paràmetres ni retorna valors.fmt.Println("Hola, món!")
: Imprimeix "Hola, món!" a la consola.saluda()
: Crida a la funciósaluda
.
Paràmetres i Valors de Retorn
Les funcions poden rebre paràmetres i retornar valors. Els paràmetres es defineixen dins dels parèntesis després del nom de la funció, i els tipus de retorn es defineixen després dels parèntesis de paràmetres.
Exemple
package main import "fmt" // Funció que rep dos enters com a paràmetres i retorna la seva suma func suma(a int, b int) int { return a + b } func main() { resultat := suma(3, 4) // Crida a la funció amb els valors 3 i 4 fmt.Println("La suma és:", resultat) }
Explicació
func suma(a int, b int) int { ... }
: Defineix una funció anomenadasuma
que rep dos enters (a
ib
) i retorna un enter.return a + b
: Retorna la suma dels paràmetresa
ib
.resultat := suma(3, 4)
: Crida a la funciósuma
amb els valors 3 i 4, i emmagatzema el resultat en la variableresultat
.
Funcions Anònimes i Funcions com a Valors
Les funcions en Go poden ser anònimes (sense nom) i assignades a variables. També poden ser passades com a arguments a altres funcions.
Exemple
package main import "fmt" func main() { // Funció anònima assignada a una variable saluda := func(nom string) { fmt.Println("Hola,", nom) } saluda("Anna") // Crida a la funció anònima // Funció que rep una altra funció com a paràmetre executa := func(f func(string), valor string) { f(valor) } executa(saluda, "Joan") // Passa la funció `saluda` com a argument }
Explicació
saluda := func(nom string) { ... }
: Defineix una funció anònima que rep un string i l'assigna a la variablesaluda
.executa := func(f func(string), valor string) { ... }
: Defineix una funció que rep una funció i un string com a paràmetres.executa(saluda, "Joan")
: Passa la funciósaluda
i el valor "Joan" a la funcióexecuta
.
Funcions Variàdiques
Les funcions variàdiques poden rebre un nombre variable d'arguments. Es defineixen utilitzant ...
abans del tipus de paràmetre.
Exemple
package main import "fmt" // Funció variàdica que rep un nombre variable d'enters func suma(nums ...int) int { total := 0 for _, num := range nums { total += num } return total } func main() { fmt.Println(suma(1, 2, 3)) // Crida a la funció amb tres arguments fmt.Println(suma(4, 5, 6, 7, 8)) // Crida a la funció amb cinc arguments }
Explicació
func suma(nums ...int) int { ... }
: Defineix una funció variàdica que rep un nombre variable d'enters.for _, num := range nums { ... }
: Itera sobre cada enter ennums
.total += num
: Afegeix cada enter al total.
Exercicis Pràctics
Exercici 1: Funció de Multiplicació
Escriu una funció anomenada multiplica
que rebi dos enters i retorni el seu producte.
Solució
package main import "fmt" func multiplica(a int, b int) int { return a * b } func main() { fmt.Println(multiplica(3, 4)) // Ha de retornar 12 }
Exercici 2: Funció Variàdica de Concatenació
Escriu una funció variàdica anomenada concatena
que rebi un nombre variable de strings i els concateni en un sol string.
Solució
package main import "fmt" func concatena(strs ...string) string { resultat := "" for _, str := range strs { resultat += str } return resultat } func main() { fmt.Println(concatena("Hola", " ", "món", "!")) // Ha de retornar "Hola món!" }
Conclusió
En aquesta secció, hem après com definir i utilitzar funcions en Go, incloent-hi funcions amb paràmetres, valors de retorn, funcions anònimes, funcions com a valors i funcions variàdiques. Les funcions són una eina poderosa per organitzar i reutilitzar el codi, i són essencials per escriure programes clars i eficients. En el següent mòdul, explorarem les estructures de dades avançades en Go.
Curs de Programació en Go
Mòdul 1: Introducció a Go
- Introducció a Go
- Configuració de l'Entorn Go
- El Teu Primer Programa en Go
- Sintaxi i Estructura Bàsiques
Mòdul 2: Conceptes Bàsics
Mòdul 3: Estructures de Dades Avançades
Mòdul 4: Gestió d'Errors
Mòdul 5: Concurrència
Mòdul 6: Temes Avançats
Mòdul 7: Desenvolupament Web amb Go
Mòdul 8: Treballant amb Bases de Dades
Mòdul 9: Desplegament i Manteniment
- Construcció i Desplegament d'Aplicacions Go
- Registre
- Monitorització i Optimització del Rendiment
- Millors Pràctiques de Seguretat