Mik a szerkezetek Golangban

Mik A Szerkezetek Golangban



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:

típus Személyi struktúra {
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 24
kash := 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.