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ó anomenadasaludaque 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ó anomenadasumaque rep dos enters (aib) i retorna un enter.return a + b: Retorna la suma dels paràmetresaib.resultat := suma(3, 4): Crida a la funciósumaamb 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ósaludai 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
