Data i Structs
Nu hvor vi ved, hvordan man opretter en instans af en struktur, bør vi lære, hvordan man gemmer og ændrer data i dem.
Vi kan bruge punktum (.) efterfulgt af feltnavnet for at referere til det. Overvej eksemplet i det følgende program, hvor vi opretter en instans af Student-klassen kaldet student1:
index.go
123456789101112131415161718192021package main import "fmt" type Student struct { name string age int id int course string grades [5]float32 } func main() { var student1 Student fmt.Println("Name:", student1.name) fmt.Println("Age:", student1.age) fmt.Println("ID:", student1.id) fmt.Println("Course:", student1.course) fmt.Println("Grades:", student1.grades) }
Dette skyldes, at der ikke blev gemt nogen data manuelt i strukturen, hvilket får hvert felt til at antage en standard nulværdi baseret på dets type.
Bemærk
I Go kan vi ikke angive vores egne standardværdier for felterne; der tildeles automatisk nulværdier til felterne baseret på deres typer. Vi kan dog angive brugerdefinerede standardværdier ved at oprette en konstruktørfunktion, hvilket ligger uden for dette kursus' rammer, da det kræver kendskab til pointers.
Vi kan også referere til og tildele værdier til felterne ved at bruge samme reference-metode, for eksempel:
index.go
1student1.name = "Leo"
Derfor kan vi ændre programmet ovenfor til at gemme nogle indledende data tilsvarende:
index.go
123456789101112131415161718192021222324252627package main import "fmt" type Student struct { name string age int id int course string grades [5]float32 } func main() { var student1 Student student1.name = "Leo" student1.age = 21 student1.id = 121 student1.course = "CS" student1.grades = [5] float32 { 4.5, 4.55, 4.49, 4.92, 5.0 } fmt.Println("Name:", student1.name) fmt.Println("Age:", student1.age) fmt.Println("ID:", student1.id) fmt.Println("Course:", student1.course) fmt.Println("Grades:", student1.grades) }
Bemærk
Felterne i en struct kaldes også medlemmer.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 1.96
Data i Structs
Stryg for at vise menuen
Nu hvor vi ved, hvordan man opretter en instans af en struktur, bør vi lære, hvordan man gemmer og ændrer data i dem.
Vi kan bruge punktum (.) efterfulgt af feltnavnet for at referere til det. Overvej eksemplet i det følgende program, hvor vi opretter en instans af Student-klassen kaldet student1:
index.go
123456789101112131415161718192021package main import "fmt" type Student struct { name string age int id int course string grades [5]float32 } func main() { var student1 Student fmt.Println("Name:", student1.name) fmt.Println("Age:", student1.age) fmt.Println("ID:", student1.id) fmt.Println("Course:", student1.course) fmt.Println("Grades:", student1.grades) }
Dette skyldes, at der ikke blev gemt nogen data manuelt i strukturen, hvilket får hvert felt til at antage en standard nulværdi baseret på dets type.
Bemærk
I Go kan vi ikke angive vores egne standardværdier for felterne; der tildeles automatisk nulværdier til felterne baseret på deres typer. Vi kan dog angive brugerdefinerede standardværdier ved at oprette en konstruktørfunktion, hvilket ligger uden for dette kursus' rammer, da det kræver kendskab til pointers.
Vi kan også referere til og tildele værdier til felterne ved at bruge samme reference-metode, for eksempel:
index.go
1student1.name = "Leo"
Derfor kan vi ændre programmet ovenfor til at gemme nogle indledende data tilsvarende:
index.go
123456789101112131415161718192021222324252627package main import "fmt" type Student struct { name string age int id int course string grades [5]float32 } func main() { var student1 Student student1.name = "Leo" student1.age = 21 student1.id = 121 student1.course = "CS" student1.grades = [5] float32 { 4.5, 4.55, 4.49, 4.92, 5.0 } fmt.Println("Name:", student1.name) fmt.Println("Age:", student1.age) fmt.Println("ID:", student1.id) fmt.Println("Course:", student1.course) fmt.Println("Grades:", student1.grades) }
Bemærk
Felterne i en struct kaldes også medlemmer.
Tak for dine kommentarer!