Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Rakenteiden Luominen | Johdanto Structeihin ja Mappeihin
Quizzes & Challenges
Quizzes
Challenges
/
Johdatus Golangiin

bookRakenteiden Luominen

Tähän asti olemme käsitelleet erilaisia perusmuuttujatyyppejä, kuten int, float32, string ja niin edelleen. Meillä on kuitenkin mahdollisuus luoda uusia tietotyyppejä, jotka ovat pohjimmiltaan kokoelmia muista tietotyypeistä.

Structit, eli rakenteet, ovat käyttäjän määrittelemiä tietotyyppejä. Structia voidaan siis toisinaan kutsua myös tietotyypiksi.

Yllä olevassa kuvassa on esimerkki rakenteesta nimeltä Person, joka sisältää kenttiä eri tietotyypeillä: name, age ja salary. Rakenne toimii mallina, joka määrittelee, mitä tietoja kyseisen tyypin instanssiin tallennetaan. Voimme luoda instanssin, eli muuttujan, käyttämällä Person-tietotyyppiä ja tallentaa siihen henkilön nimen, iän ja palkan.

Vastaavasti voimme luoda myös taulukoita käyttäen Person-tietotyyppiä. Structit ovat siis erittäin hyödyllisiä, kun haluamme tallentaa ja käsitellä toisiinsa liittyviä tietoja järjestelmällisesti.

Structin määrittelyyn käytetään seuraavaa syntaksia:

type structName struct {
    element_1 datatype
    element_2 datatype
    element_3 datatype
    …
}

Huomio

Termit type ja struct ovat Golangin avainsanoja.

Yllä olevan syntaksin mukaisesti voimme toteuttaa aiemmin käsitellyn Person-structin esimerkin:

Seuraavassa on hieman monimutkaisempi esimerkki, joka sisältää myös taulukon:

index.go

index.go

copy
1234567
type Student struct { name string age int id int course string grades [5]float32 }

Yllä olevassa esimerkissä on kenttä nimeltä grades, joka on taulukko, jonka koko on 5 ja tyyppi float32. Seuraavissa luvuissa opimme, miten struct-tietoja tallennetaan, käsitellään ja muokataan.

Voimme myös viitata muihin structeihin (mukautetut tietotyypit) structin määritelmässä. Esimerkiksi Course-struct sisältää kentän nimeltä students, joka on viipale tyyppiä Student:

index.go

index.go

copy
1234
type Course struct { name string students []Student }
question mark

Mikä on oikea syntaksi Structin määrittelyyn nimellä myStruct:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 1

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

bookRakenteiden Luominen

Pyyhkäise näyttääksesi valikon

Tähän asti olemme käsitelleet erilaisia perusmuuttujatyyppejä, kuten int, float32, string ja niin edelleen. Meillä on kuitenkin mahdollisuus luoda uusia tietotyyppejä, jotka ovat pohjimmiltaan kokoelmia muista tietotyypeistä.

Structit, eli rakenteet, ovat käyttäjän määrittelemiä tietotyyppejä. Structia voidaan siis toisinaan kutsua myös tietotyypiksi.

Yllä olevassa kuvassa on esimerkki rakenteesta nimeltä Person, joka sisältää kenttiä eri tietotyypeillä: name, age ja salary. Rakenne toimii mallina, joka määrittelee, mitä tietoja kyseisen tyypin instanssiin tallennetaan. Voimme luoda instanssin, eli muuttujan, käyttämällä Person-tietotyyppiä ja tallentaa siihen henkilön nimen, iän ja palkan.

Vastaavasti voimme luoda myös taulukoita käyttäen Person-tietotyyppiä. Structit ovat siis erittäin hyödyllisiä, kun haluamme tallentaa ja käsitellä toisiinsa liittyviä tietoja järjestelmällisesti.

Structin määrittelyyn käytetään seuraavaa syntaksia:

type structName struct {
    element_1 datatype
    element_2 datatype
    element_3 datatype
    …
}

Huomio

Termit type ja struct ovat Golangin avainsanoja.

Yllä olevan syntaksin mukaisesti voimme toteuttaa aiemmin käsitellyn Person-structin esimerkin:

Seuraavassa on hieman monimutkaisempi esimerkki, joka sisältää myös taulukon:

index.go

index.go

copy
1234567
type Student struct { name string age int id int course string grades [5]float32 }

Yllä olevassa esimerkissä on kenttä nimeltä grades, joka on taulukko, jonka koko on 5 ja tyyppi float32. Seuraavissa luvuissa opimme, miten struct-tietoja tallennetaan, käsitellään ja muokataan.

Voimme myös viitata muihin structeihin (mukautetut tietotyypit) structin määritelmässä. Esimerkiksi Course-struct sisältää kentän nimeltä students, joka on viipale tyyppiä Student:

index.go

index.go

copy
1234
type Course struct { name string students []Student }
question mark

Mikä on oikea syntaksi Structin määrittelyyn nimellä myStruct:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 1
some-alt