Mis on struktuurid Golangis

Mis On Struktuurid Golangis



Go keeles on struktuur muutujate (väljade) kogum, mis on rühmitatud ühe nime alla. See on liitandmetüüp, mis võimaldab meil luua kohandatud andmestruktuure seotud teabe hoidmiseks. Go struktuurid on nagu objektorienteeritud programmeerimise klassid, nagu C ja C++, kuid need ei toeta pärimist. Selle asemel tuginevad nad koodi taaskasutamiseks kompositsioonile. See artikkel hõlmab Golangi struktuure ja seda, kuidas me saame struktuuriliikmeid deklareerida ja neile juurde pääseda.

Mis on struktuur Golangis

Golangi keeles on struktuur liitandmetüüp, mis koosneb nullist või enamast nimega väljast, millest igaühel on konkreetne tüüp. Struktuuri väljad võivad olla mis tahes tüüpi, sealhulgas muud struktuurid, massiivid, funktsioonid või liidesed.







Siin on näide Golangi struktuurist:



tüüp Isiku struktuur {
Täisnime string
Aastatevanus int
Asukoht Aadress
}
tüüp Aadressi struktuur {
Tänavanime string
CityName    string
Riiginime string
}


Siin oleme määratlenud isikustruktuuri, millel on kolm välja: Full Name, Years Old ja Location. Väli Asukoht on ise struktuur, millel on kolm välja: tänavanimi, linnanimi ja riiginimi.



Kuidas kuulutada struktuuri Golangis

Saame deklareerida struktuuri Golangis, kasutades tüüp märksõna. Struktuuri nimi määratakse pärast tüüp märksõna ja selle väljad on suletud sulgudes { } . Siin on Go-s struktuuri deklareerimise süntaks:





tüüp StructName struktuur {
Väljanimi1 Väljatüüp1
Väljanimi2 Väljatüüp2
...
}


Allpool on näide selle kohta, kuidas deklareerida struktuur nimega Isik kahe väljaga nimi ja vanus tüüpi string ja int:

tüüp Isiku struktuur {
nime string
vanus int
}


Ülaltoodud koodis oleme kasutanud tüüp märksõna uue nimega struktuuri deklareerimiseks Isik kahe väljaga nimi tüüpi string ja vanus tüüpi int. Väljad on eraldatud a Uus rida tegelane aga a semikoolon (;) saab kasutada ka nende eraldamiseks.



Kuidas Golangis struktuuriliikmele juurde pääseda

Juurdepääs struktuurieksemplari väljadele Go keeles punkt (.) kasutatakse operaatorit. Sellele punktioperaatorile järgneb välja nimi. Siin on näide, kuidas pääseda ligi isikustruktuuri eksemplari nime- ja vanuseväljadele.

// Loo uus ` Isik ` nimega struktuuri eksemplar 'kash' ja vanus 24
kash := Isik { nimi: 'kash' , vanus: 24 }

// Juurdepääs väljadele ` kash ` struktuuri eksemplar
fmt.Println ( kash.nimi ) // Väljund: 'kash'
fmt.Println ( kash.age ) // Väljund: 24


Ülaltoodud koodis oleme loonud uue isikustruktuuri eksemplari nimega kash koos nimega kash ja vanus 24 . Seejärel pääseme juurde kash struct eksemplari nime ja vanuse väljadele, kasutades (.) ja printige need konsooli.

Oluline on märkida, et struktuuri eksemplari väljadele pääseb juurde punktitähistusega, mitte kasutades nool märge (->) kasutatakse mõnes teises programmeerimiskeeles. Punktmärki kasutatakse kogu Go järjekindlalt struktuuriväljadele, aga ka muud tüüpi omadustele ja meetoditele juurdepääsuks.

Golangi struktuuriliikme deklareerimise ja juurdepääsu näidiskood

Allpool on täielik näide Isiku struktuuri deklareerimisest Go ja selle väärtuste ekraanile printimisest:

pakett peamine
importida 'fmt'
tüüp Isiku struktuur {
nime string
vanus int
}
func main ( ) {
// Loo uus ` Isik ` nimega struktuuri eksemplar 'kash' ja vanus 24
kash := Isik { nimi: 'kash' , vanus: 24 }
// Printige välja ` nimi ` ja ` vanus ` kohta ` kash ` struct eksemplar konsooli
fmt.Printf ( 'Nimi: %s \n ' , kash.nimi )
fmt.Printf ( 'Vanus: %d \n ' , kash.age )
}


Eespool kirjutatud koodis deklareerisime esmalt Isik struktuur. See struktuur sisaldab kahte välja, milleks on nimi ja vanus. Pärast seda lõime uue isikustruktuuri eksemplari nimega kash koos nimega kash ja vanus 24 .

Nime ja vanuse väljade kuvamiseks kasutame fmt.Printf funktsiooniga %s ja %d vorminguspetsifikaatorid, et printida vastavalt nime ja vanuse väljad.

Pärast käivitamist ilmub konsoolile järgmine väljundkood:

Kuidas läbida struktuuri kui funktsiooni argumente

Struktuuri edastamiseks funktsiooni argumendina Go-s peame lihtsalt funktsiooni allkirjas parameetri tüübiks määrama struktuuritüübi ja seejärel funktsiooni kutsumisel andma argumendina struktuuri eksemplari.

Näidiskood

Allolev näide näitab, kuidas edastada isiku struktuuri eksemplari argumendina funktsioonile Go keeles ja printida selle väärtused ekraanile:

pakett peamine
importida 'fmt'
// Deklareerige struktuur nimega ` Isik ` kahe väljaga: ` nimi ` ja ` vanus `
tüüp Isiku struktuur {
nime string
vanus int
}
// Kuulutada a funktsiooni nimega ` printPerson ` see võtab a ` Isik ` struktuur nagu argument
func printPerson ( p Isik ) {
fmt.Printf ( 'Nimi: %s \n ' , p.nimi )
fmt.Printf ( 'Vanus: %d \n ' , lk )
}
func main ( ) {
// Loo uus ` Isik ` nimega struktuuri eksemplar 'kash' ja vanus 24
kash := Isik { nimi: 'kash' , vanus: 24 }
// Mööda ` kash ` struktuuri eksemplar ` printPerson ` funktsiooni
printPerson ( kash )
}


Ülaltoodud koodis deklareerisime esmalt isikustruktuuri kahe väljaga, nimi, ja vanus . Seejärel deklareerime funktsiooni nimega printPerson mis võtab argumendina isikustruktuuri ja prindib selle nime ja vanuse väljad ekraanile, kasutades funktsiooni fmt.Printf.

Põhifunktsioonis lõime uue isikustruktuuri eksemplari nimega kash koos nimega kash ja vanus 24. Seejärel edastame kash struct eksemplari funktsioonile printPerson, kutsudes funktsiooni printPerson ja edastades kash argumendina.

Pärast ülaltoodud koodi käivitamist näete konsoolil järgmist väljundit:

Järeldus

Golangis võivad struktuurid esindada keerulisi andmetüüpe ja kapseldada seotud andmeid. Struktuur on andmetüüp, mis koosneb ühest või mitmest väljast, millest igaühele on antud konkreetne nimi ja tüüp. Struktuuri väljad võivad olla mis tahes tüüpi, sealhulgas muud struktuurid, massiivid, funktsioonid või liidesed. Selles artiklis käsitleti üksikasjalikult Go-struktuure. Struktuurielementide deklareerimise ja neile juurdepääsu kohta lisateabe saamiseks lugege artiklit.