En aquest tema, aprendrem sobre les structs en Go, una característica fonamental per a la programació orientada a objectes en aquest llenguatge. Les structs ens permeten agrupar dades relacionades en una sola entitat, facilitant la gestió i manipulació de dades complexes.
Continguts
Què és una Struct?
Una struct (abreviatura de "structure") és un tipus de dades compost que permet agrupar diferents tipus de dades sota un mateix nom. Cada element dins d'una struct es coneix com a camp.
Definició d'una Struct
Per definir una struct en Go, utilitzem la paraula clau type seguida del nom de la struct i la paraula clau struct. Aquí teniu un exemple:
En aquest exemple, hem definit una struct anomenada Persona amb tres camps: Nom, Edat i Correu.
Inicialització de Structs
Hi ha diverses maneres d'inicialitzar una struct en Go:
Inicialització Literal
Inicialització per Ordre de Camps
Inicialització amb Valors Zero
En aquest cas, tots els camps de persona3 tindran els valors zero dels seus respectius tipus ("" per a strings, 0 per a ints, etc.).
Accés als Camps d'una Struct
Per accedir o modificar els camps d'una struct, utilitzem l'operador de punt (.):
Metodes en Structs
Podem definir mètodes per a structs, que són funcions associades a un tipus de struct. Aquí teniu un exemple:
En aquest exemple, hem definit un mètode Saludar per a la struct Persona. Aquest mètode retorna una salutació utilitzant el camp Nom.
Exemples Pràctics
Exemple 1: Definició i Inicialització
package main
import "fmt"
type Persona struct {
Nom string
Edat int
Correu string
}
func main() {
persona := Persona{
Nom: "Anna",
Edat: 28,
Correu: "anna@example.com",
}
fmt.Println(persona)
}Exemple 2: Mètodes en Structs
package main
import "fmt"
type Persona struct {
Nom string
Edat int
Correu string
}
func (p *Persona) Saludar() string {
return "Hola, em dic " + p.Nom
}
func main() {
persona := Persona{
Nom: "Pere",
Edat: 35,
Correu: "pere@example.com",
}
fmt.Println(persona.Saludar())
}Exercicis
Exercici 1: Definició i Inicialització
Defineix una struct anomenada Cotxe amb els camps Marca, Model i Any. Inicialitza una instància de Cotxe i imprimeix els seus valors.
Exercici 2: Mètodes en Structs
Defineix un mètode anomenat Descripcio per a la struct Cotxe que retorni una cadena amb la marca, el model i l'any del cotxe. Utilitza aquest mètode per imprimir la descripció d'un cotxe.
Solucions
Solució Exercici 1
package main
import "fmt"
type Cotxe struct {
Marca string
Model string
Any int
}
func main() {
cotxe := Cotxe{
Marca: "Toyota",
Model: "Corolla",
Any: 2020,
}
fmt.Println(cotxe)
}Solució Exercici 2
package main
import "fmt"
type Cotxe struct {
Marca string
Model string
Any int
}
func (c *Cotxe) Descripcio() string {
return fmt.Sprintf("Marca: %s, Model: %s, Any: %d", c.Marca, c.Model, c.Any)
}
func main() {
cotxe := Cotxe{
Marca: "Honda",
Model: "Civic",
Any: 2018,
}
fmt.Println(cotxe.Descripcio())
}Conclusió
Les structs són una eina poderosa en Go per agrupar dades relacionades i treballar amb elles de manera organitzada. Hem après a definir structs, inicialitzar-les, accedir als seus camps i definir mètodes per a elles. Amb aquests coneixements, estem preparats per abordar estructures de dades més complexes i escriure codi més organitzat i mantenible.
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
