Oppretting av Strukturer
Til nå har vi arbeidet med variabler av ulike grunnleggende datatyper, som int, float32, string og lignende. Vi har imidlertid muligheten til å opprette nye datatyper, som i hovedsak er samlinger av andre datatyper.
Structs, også kjent som strukturer, er brukerskapte datatyper. Derfor kan en struct også noen ganger omtales som en datatype.
I bildet ovenfor ser vi en illustrasjon av en struktur kalt Person, som består av felt med ulike datatyper, nærmere bestemt name, age og salary. En struktur fungerer som en mal som definerer hvilke data som skal lagres i en instans av denne typen. Vi kan opprette en instans, altså en variabel, ved å bruke Person-datatypen, og deretter lagre en persons navn, alder og lønn i den.
På samme måte kan vi også opprette arrayer ved å bruke Person-datatypen. Structs er derfor svært nyttige når vi ønsker å lagre og få tilgang til relaterte data på en organisert måte.
Følgende syntaks brukes for å deklarere en struct i kode:
type structName struct {
element_1 datatype
element_2 datatype
element_3 datatype
…
}
Merk
Begrepene
typeogstructer nøkkelord i Golang.
Ved å følge syntaksen ovenfor kan vi implementere eksempelet med Person-structen som ble diskutert tidligere:
Følgende er et litt mer komplisert eksempel som også inneholder et array:
index.go
1234567type Student struct { name string age int id int course string grades [5]float32 }
I eksempelet ovenfor finnes det et felt kalt grades, som er et array med størrelse 5 og typen float32. I de neste kapitlene skal vi lære hvordan man lagrer, får tilgang til og endrer data i structs.
Vi kan også referere til andre structs (egendefinerte datatyper) innenfor definisjonen av structs. For eksempel inkluderer Course-structen et felt kalt students, som er en slice av typen Student:
index.go
1234type Course struct { name string students []Student }
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain how to create an instance of a struct in Go?
How do I access or modify the fields of a struct?
What is the difference between an array and a slice in the context of structs?
Awesome!
Completion rate improved to 1.96
Oppretting av Strukturer
Sveip for å vise menyen
Til nå har vi arbeidet med variabler av ulike grunnleggende datatyper, som int, float32, string og lignende. Vi har imidlertid muligheten til å opprette nye datatyper, som i hovedsak er samlinger av andre datatyper.
Structs, også kjent som strukturer, er brukerskapte datatyper. Derfor kan en struct også noen ganger omtales som en datatype.
I bildet ovenfor ser vi en illustrasjon av en struktur kalt Person, som består av felt med ulike datatyper, nærmere bestemt name, age og salary. En struktur fungerer som en mal som definerer hvilke data som skal lagres i en instans av denne typen. Vi kan opprette en instans, altså en variabel, ved å bruke Person-datatypen, og deretter lagre en persons navn, alder og lønn i den.
På samme måte kan vi også opprette arrayer ved å bruke Person-datatypen. Structs er derfor svært nyttige når vi ønsker å lagre og få tilgang til relaterte data på en organisert måte.
Følgende syntaks brukes for å deklarere en struct i kode:
type structName struct {
element_1 datatype
element_2 datatype
element_3 datatype
…
}
Merk
Begrepene
typeogstructer nøkkelord i Golang.
Ved å følge syntaksen ovenfor kan vi implementere eksempelet med Person-structen som ble diskutert tidligere:
Følgende er et litt mer komplisert eksempel som også inneholder et array:
index.go
1234567type Student struct { name string age int id int course string grades [5]float32 }
I eksempelet ovenfor finnes det et felt kalt grades, som er et array med størrelse 5 og typen float32. I de neste kapitlene skal vi lære hvordan man lagrer, får tilgang til og endrer data i structs.
Vi kan også referere til andre structs (egendefinerte datatyper) innenfor definisjonen av structs. For eksempel inkluderer Course-structen et felt kalt students, som er en slice av typen Student:
index.go
1234type Course struct { name string students []Student }
Takk for tilbakemeldingene dine!