Mitä ovat rakenteet Golangissa

Mita Ovat Rakenteet Golangissa



Go-kielessä rakenne on kokoelma muuttujia (kenttiä), jotka on ryhmitelty yhden nimen alle. Se on yhdistelmätietotyyppi, jonka avulla voimme luoda mukautettuja tietorakenteita asiaan liittyvien tietojen säilyttämiseksi. Go:n rakenteet ovat kuin olioohjelmoinnin luokkia, kuten C ja C++, mutta ne eivät tue periytymistä. Sen sijaan he luottavat koostumukseen koodin uudelleenkäytön saavuttamiseksi. Tämä artikkeli kattaa Golangin rakenteet ja kuinka voimme ilmoittaa ja käyttää rakenteen jäseniä.

Mikä on rakenne Golangissa

Golangissa rakenne on yhdistelmätietotyyppi, joka koostuu nollasta tai useammasta nimetystä kentästä, joista jokaisella on tietty tyyppi. Rakenteen kentät voivat olla mitä tahansa tyyppiä, mukaan lukien muut rakenteet, taulukot, funktiot tai rajapinnat.







Tässä on esimerkki rakenteesta Golangissa:



tyyppi Henkilörakenne {
FullName-merkkijono
YearsOld int
Sijainti Osoite
}
tyyppi Osoiterakenne {
StreetName-merkkijono
CityName    merkkijono
CountryName-merkkijono
}


Tässä olemme määrittäneet Henkilörakenteen, jossa on kolme kenttää: Full Name, YearsOld ja Location. Sijainti-kenttä on itsessään rakenne, jossa on kolme kenttää: StreetName, CityName ja CountryName.



Kuinka julistaa rakenne Golangissa

Voimme ilmoittaa rakenteen Golangissa käyttämällä tyyppi avainsana. Rakenteen nimi määritellään jälkeen tyyppi avainsana, ja sen kentät on suljettu aaltosulkeisiin { } . Tässä on syntaksi rakenteen ilmoittamiseen Go:ssa:





tyyppi StructName rakenne {
KentänNimi1 Kenttätyyppi1
KentänNimi2 Kenttätyyppi2
...
}


Alla on esimerkki siitä, kuinka määritellään henkilö nimeltä henkilö kahdella kentällä nimi ja ikätyyppien string ja int vastaavasti:

tyyppi Henkilörakenne {
nimimerkkijono
ikä int
}


Yllä olevassa koodissa olemme käyttäneet tyyppi avainsana ilmoittaaksesi uuden nimen Henkilö kahdella kentällä nimi tyyppiä merkkijono ja ikä tyyppiä int. Kentät on erotettu toisistaan ​​a Uusi rivi hahmo mutta a puolipiste (;) voidaan käyttää myös niiden erottamiseen.



Kuinka päästä Struct Memberiin Golangissa

Voit käyttää struct-ilmentymän kenttiä Go-kielellä piste (.) operaattoria käytetään. Tätä pisteoperaattoria seuraa kentän nimi. Tässä on esimerkki Person struct -esiintymän nimi- ja ikäkenttien käyttämisestä:

// Luoda uusi ` Henkilö ` struct-instanssi nimellä 'kash' ja ikä 24
kash := Henkilö { nimi: 'kash' , ikä: 24 }

// Pääsy kenttiin ` kash ` rakenne-esiintymä
fmt.Println ( kash.name ) // Lähtö: 'kash'
fmt.Println ( kash.age ) // Lähtö: 24


Yllä olevaan koodiin olemme luoneet uuden henkilörakenteen ilmentymän nimeltä kash ja jonka nimi on kash ja ikä 24 . Tämän jälkeen käytämme kash struct -esiintymän nimi- ja ikäkenttiä käyttämällä (.) ja tulosta ne konsoliin.

On tärkeää huomata, että rakenneilmentymän kenttiä käytetään pistemerkinnällä, ei pistemerkinnällä nuoli merkintä (->) käytetään joissakin muissa ohjelmointikielissä. Pistemerkintää käytetään johdonmukaisesti Go:ssa rakennekenttien sekä muuntyyppisten ominaisuuksien ja menetelmien käyttämiseen.

Esimerkkikoodi rakenteen jäsenen ilmoittamisesta ja pääsystä Golangissa

Alla on täydellinen esimerkki Person-rakenteen ilmoittamisesta Gossa ja sen arvojen tulostamisesta näytölle:

pääpaketti
tuonti 'fmt'
tyyppi Henkilörakenne {
nimimerkkijono
ikä int
}
func main ( ) {
// Luoda uusi ` Henkilö ` struct-instanssi nimellä 'kash' ja ikä 24
kash := Henkilö { nimi: 'kash' , ikä: 24 }
// Tulosta ` nimi ` ja ` ikä ` / ` kash ` struct-instanssi konsoliin
fmt.Printf ( 'Nimi: %s \n ' , kash.name )
fmt.Printf ( 'Ikä: %d \n ' , kash.age )
}


Yllä kirjoitetussa koodissa ilmoitimme ensin Henkilö struct. Tämä rakenne sisältää kaksi kenttää, jotka ovat nimi ja ikä. Sen jälkeen loimme uuden henkilörakenteen ilmentymän nimeltä kash ja jonka nimi oli kash ja ikä 24 .

Käytämme nimi- ja ikäkenttien näyttämiseen fmt.Printf toiminnon kanssa %s ja %d muotomäärityksiä nimi- ja ikäkenttien tulostamiseksi.

Suorituksen jälkeen konsoliin ilmestyy seuraava koodi:

Kuinka antaa rakenne funktioargumentiksi

Jotta voisimme välittää rakenteen funktion argumenttina Go:ssa, meidän on yksinkertaisesti määritettävä struct-tyyppi parametrityypiksi funktion allekirjoituksessa ja sitten välitettävä struct-ilmentymä argumenttina funktiota kutsuttaessa.

Esimerkkikoodi

Alla oleva esimerkki näyttää, kuinka Person struct -ilmentymä välitetään argumenttina Go-kielen funktiolle ja tulostetaan sen arvot näytölle:

pääpaketti
tuonti 'fmt'
// Ilmoita rakenne nimeltä ` Henkilö ` kahdella kentällä: ` nimi ` ja ` ikä `
tyyppi Henkilörakenne {
nimimerkkijono
ikä int
}
// Ilmoita a toiminto nimetty ` printPerson ` joka kestää a ` Henkilö ` struct kuten argumentti
func printPerson ( p Henkilö ) {
fmt.Printf ( 'Nimi: %s \n ' , p.nimi )
fmt.Printf ( 'Ikä: %d \n ' , s. ikä )
}
func main ( ) {
// Luoda uusi ` Henkilö ` struct-instanssi nimellä 'kash' ja ikä 24
kash := Henkilö { nimi: 'kash' , ikä: 24 }
// Anna minulle ` kash ` struct instanssiin ` printPerson ` toiminto
printPerson ( kash )
}


Yllä olevassa koodissa määritimme ensin henkilörakenteen kahdella kentällä, nimi, ja ikä . Sitten julistamme funktion nimeltä printPerson joka ottaa Person-rakenteen argumenttina ja tulostaa sen nimi- ja ikäkentät näytölle fmt.Printf-funktiolla.

Pääfunktiossa loimme uuden henkilörakenteen ilmentymän nimeltä kash ja jonka nimi on kash ja ikä 24. Välitämme sitten kash struct -esiintymän printPerson-funktiolle kutsumalla printPerson-funktiota ja välittämällä kash argumenttina.

Seuraava tulos näkyy konsolissa yllä olevan koodin suorittamisen jälkeen:

Johtopäätös

Golangissa rakenteet voivat edustaa monimutkaisia ​​tietotyyppejä ja kapseloida niihin liittyviä tietoja. Rakenne on tietotyyppi, joka koostuu yhdestä tai useammasta kentästä, joille kullekin on annettu tietty nimi ja tyyppi. Rakenteen kentät voivat olla mitä tahansa tyyppiä, mukaan lukien muut rakenteet, taulukot, funktiot tai rajapinnat. Tässä artikkelissa käsiteltiin Go-rakenteita yksityiskohtaisesti. Lue artikkelista lisätietoja struct-elementtien ilmoittamisesta ja käyttämisestä.