Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tiedot Structeissa | Johdanto Structeihin ja Mappeihin
Johdatus Golangiin

bookTiedot Structeissa

Nyt kun osaamme luoda rakenteen instanssin, meidän tulisi oppia, miten tietoa tallennetaan ja muokataan niissä.

Voimme käyttää pistettä (.) ja kentän nimeä viitataksemme siihen. Tarkastellaan seuraavaa esimerkkiä, jossa luodaan Student-luokan instanssi nimeltä student1:

index.go

index.go

copy
123456789101112131415161718192021
package 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) }

Tämä johtuu siitä, että rakenteeseen ei tallennettu tietoja manuaalisesti, jolloin jokainen kenttä saa oletuksena nolla-arvon tyypin perusteella.

Huomio

Go:ssa emme voi määrittää omia oletusarvoja kentille; kieli asettaa automaattisesti nolla-arvot kentille niiden tyyppien mukaan. Voimme kuitenkin määrittää mukautettuja oletusarvoja luomalla konstruktiofunktion, mutta tämä vaatii osoittimien tuntemusta ja ei kuulu tämän kurssin aihepiiriin.

Voimme myös viitata kenttiin ja asettaa niille arvoja samalla viittaustavalla, esimerkiksi:

index.go

index.go

copy
1
student1.name = "Leo"

Voimme siis muokata yllä olevaa ohjelmaa tallentaaksemme siihen alkuperäisiä tietoja seuraavasti:

index.go

index.go

copy
123456789101112131415161718192021222324252627
package 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) }

Huomio

Rakenteen kenttiä kutsutaan myös jäseniksi.

question mark

Mitä symbolia käytetään rakenteen jäsenten / kenttien käsittelemiseen:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 1.96

bookTiedot Structeissa

Pyyhkäise näyttääksesi valikon

Nyt kun osaamme luoda rakenteen instanssin, meidän tulisi oppia, miten tietoa tallennetaan ja muokataan niissä.

Voimme käyttää pistettä (.) ja kentän nimeä viitataksemme siihen. Tarkastellaan seuraavaa esimerkkiä, jossa luodaan Student-luokan instanssi nimeltä student1:

index.go

index.go

copy
123456789101112131415161718192021
package 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) }

Tämä johtuu siitä, että rakenteeseen ei tallennettu tietoja manuaalisesti, jolloin jokainen kenttä saa oletuksena nolla-arvon tyypin perusteella.

Huomio

Go:ssa emme voi määrittää omia oletusarvoja kentille; kieli asettaa automaattisesti nolla-arvot kentille niiden tyyppien mukaan. Voimme kuitenkin määrittää mukautettuja oletusarvoja luomalla konstruktiofunktion, mutta tämä vaatii osoittimien tuntemusta ja ei kuulu tämän kurssin aihepiiriin.

Voimme myös viitata kenttiin ja asettaa niille arvoja samalla viittaustavalla, esimerkiksi:

index.go

index.go

copy
1
student1.name = "Leo"

Voimme siis muokata yllä olevaa ohjelmaa tallentaaksemme siihen alkuperäisiä tietoja seuraavasti:

index.go

index.go

copy
123456789101112131415161718192021222324252627
package 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) }

Huomio

Rakenteen kenttiä kutsutaan myös jäseniksi.

question mark

Mitä symbolia käytetään rakenteen jäsenten / kenttien käsittelemiseen:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 3
some-alt