A Go nyelvben a struktúra egyetlen név alatt csoportosított változók (mezők) gyűjteménye. Ez egy összetett adattípus, amely lehetővé teszi számunkra, hogy egyedi adatstruktúrákat hozzunk létre a kapcsolódó információk tárolására. A Go struktúrái olyanok, mint az objektumorientált programozás osztályai, mint például a C és a C++, de nem támogatják az öröklődést. Ehelyett a kompozícióra támaszkodnak a kód újrafelhasználása érdekében. Ez a cikk bemutatja a Golang struktúráit, és azt, hogy hogyan deklarálhatjuk és érhetjük el a struct tagokat.
Mi az a struktúra Golangban
A Golang nyelven a struktúra egy összetett adattípus, amely nulla vagy több elnevezett mezőből áll, amelyek mindegyikének van egy adott típusa. A struktúra mezői bármilyen típusúak lehetnek, beleértve a többi struktúrát, tömböt, függvényt vagy interfészt is.
Íme egy példa a golangi szerkezetre:
típus Személyi struktúra {
FullName karakterlánc
Éves int
Hely Cím
}
típus Címstruktúra {
Utcanév karakterlánc
CityName karakterlánc
CountryName karakterlánc
}
Itt definiáltunk egy személy struktúrát, amely három mezőből áll: Teljes név, Évek és Hely. A Hely mező maga egy olyan szerkezet, amely három mezőből áll: Utcanév, Városnév és Országnév.
Hogyan deklaráljunk szerkezetet Golangban
A Golangban deklarálhatunk egy struktúrát a típus kulcsszó. A struktúra neve után kerül meghatározásra típus kulcsszó, és mezői kapcsos zárójelek közé vannak zárva { } . Íme a szintaxis egy struktúra deklarálásához a Go-ban:
típus StructName struktúra {
Mezőnév1 Mezőtípus1
Mezőnév2 Mezőtípus2
...
}
Az alábbiakban egy példa látható arra, hogyan deklarálhatunk egy Személy nevű struktúrát két mezővel: neve és életkora a string és int típusokkal:
név karakterlánc
kor int
}
A fenti kódban a típus kulcsszó egy új nevű struktúra deklarálásához Személy két mezővel név típusú karakterlánc és kor típusú int. A mezőket a Új sor karakter, de a pontosvessző (;) elválasztásukra is használható.
A Struct Member elérése Golangban
Struktúrpéldány mezőinek elérése a Go nyelven pont (.) operátort használjuk. Ezt a pont operátort egy mezőnév követi. Íme egy példa a Person struct példány név és kor mezőinek elérésére:
// Újat csinálni ` Személy ` struct példány névvel 'kash' és az életkor 24kash := Személy { név: 'kash' , életkor: 24 }
// Hozzáférés a mezőihez ` kash ` struct példány
fmt.Println ( kash.name ) // Kimenet: 'kash'
fmt.Println ( kash.age ) // Kimenet: 24
A fenti kódban létrehoztunk egy új, kash nevű Person struct példányt a névvel kash és az életkor 24 . Ezután elérjük a kash struct példány neve és kor mezőit a (.) operátort, és nyomtassa ki őket a konzolra.
Fontos megjegyezni, hogy a struktúrapéldány mezőihez pontjelöléssel lehet hozzáférni, nem pedig a nyíl jelölés (->) néhány más programozási nyelvben használatos. A pontjelölést a Go-ban következetesen használják a struktúramezők, valamint más típusú tulajdonságok és módszerek eléréséhez.
Példakód a struktúratag deklarálására és elérésére Golangban
Az alábbiakban egy teljes példa látható a Személy struktúra deklarálására a Go programban, és értékeinek a képernyőre való kinyomtatására:
csomag főimport 'fmt'
típus Személyi struktúra {
név karakterlánc
kor int
}
func main ( ) {
// Újat csinálni ` Személy ` struct példány névvel 'kash' és az életkor 24
kash := Személy { név: 'kash' , életkor: 24 }
// Nyomtassa ki a ` név ` és ` kor ` nak,-nek ` kash ` struct példányt a konzolra
fmt.Printf ( 'Név: %s \n ' , kash.name )
fmt.Printf ( 'Kor: %d \n ' , kash.age )
}
A fent írt kódban először deklaráltuk a Személy struct. Ez a struktúra két mezőt tartalmaz, ezek a név és az életkor. Ezt követően létrehoztunk egy új, kash nevű Person struct példányt a névvel kash és az életkor 24 .
A név és életkor mezők megjelenítéséhez a fmt.Printf funkciót a %s és %d formátum-specifikátorokat a név és az életkor mezők kinyomtatásához.
Futtatás után a következő kimeneti kód jelenik meg a konzolon:
Hogyan adjuk át a struktúrát függvényargumentumként
Ahhoz, hogy egy struktúrát függvényargumentumként adjunk át a Go alkalmazásban, egyszerűen meg kell adnunk a struct típusát paramétertípusként a függvényaláírásban, majd a függvény meghívásakor a struct példányt argumentumként kell átadnunk.
Példakód
Az alábbi példa bemutatja, hogyan adható át egy Person struct példány argumentumként egy függvénynek Go nyelven, és hogyan nyomtathatja ki az értékeket a képernyőre:
csomag főimport 'fmt'
// Deklaráljon egy nevű struktúrát ` Személy ` két mezővel: ` név ` és ` kor `
típus Személyi struktúra {
név karakterlánc
kor int
}
// Nyilatkozni a funkció nevezett ` printPerson ` ehhez kell a ` Személy ` struct mint egy veszekedés
func printPerson ( p Személy ) {
fmt.Printf ( 'Név: %s \n ' , p.name )
fmt.Printf ( 'Kor: %d \n ' , old )
}
func main ( ) {
// Újat csinálni ` Személy ` struct példány névvel 'kash' és az életkor 24
kash := Személy { név: 'kash' , életkor: 24 }
// Adja át a ` kash ` struct példányt a ` printPerson ` funkció
printPerson ( kash )
}
A fenti kódban először deklaráltuk a Személy struktúrát két mezővel, név, és kor . Ezután deklarálunk egy nevű függvényt printPerson amely egy Person struktúrát vesz argumentumként, és kiírja a nevét és az életkor mezőit a képernyőre az fmt.Printf függvény segítségével.
A fő függvényben létrehoztunk egy új, kash nevű Person struct példányt a névvel kash és 24 éves kor. Ezután átadjuk a kash struct példányt a printPerson függvénynek úgy, hogy meghívjuk a printPerson függvényt és átadjuk kash mint az érv.
A fenti kód futtatása után a következő kimenet látható a konzolon:
Következtetés
A Golangban a struktúrák összetett adattípusokat képviselhetnek, és a kapcsolódó adatokat magukba foglalhatják. A struktúra egy vagy több mezőből álló adattípus, amelyek mindegyike külön nevet és típust kap. A struktúra mezői bármilyen típusúak lehetnek, beleértve a többi struktúrát, tömböt, függvényt vagy interfészt is. Ez a cikk részletesen tárgyalta a Go struktúrákat, a struct elemek deklarálásával és elérésével kapcsolatos további információkért olvassa el a cikket.