Wat zijn structuren in Golang

Wat Zijn Structuren In Golang



In de Go-taal is een structuur een verzameling variabelen (velden) gegroepeerd onder één naam. Het is een samengesteld gegevenstype waarmee we aangepaste gegevensstructuren kunnen maken om gerelateerde informatie te bewaren. Structuren in Go zijn als klassen in objectgeoriënteerd programmeren zoals C en C++, maar ze ondersteunen geen overerving. In plaats daarvan vertrouwen ze op samenstelling om hergebruik van code te bereiken. Dit artikel behandelt de structuren in Golang en hoe we de struct-leden kunnen declareren en openen.

Wat is een structuur in Golang

In Golang is een structuur een samengesteld gegevenstype dat bestaat uit nul of meer benoemde velden, die elk een specifiek type hebben. De velden van een structuur kunnen van elk type zijn, inclusief andere structuren, arrays, functies of interfaces.







Hier is een voorbeeld van een structuur in Golang:



type Persoonsstructuur {
FullName-tekenreeks
JaarOud int
Locatie adres
}
type Adres structuur {
StreetName-tekenreeks
CityName    tekenreeks
CountryName-tekenreeks
}


Hier hebben we een persoonsstructuur gedefinieerd met drie velden: volledige naam, jaar oud en locatie. Het veld Locatie is zelf een structuur met drie velden: Straatnaam, Stadnaam en Landnaam.



Hoe struct in Golang te declareren

We kunnen een structuur in Golang declareren met behulp van de type trefwoord. De naam van de structuur wordt gedefinieerd na de type trefwoord en de velden ervan staan ​​tussen accolades { } . Hier is de syntax voor het declareren van een struct in Go:





type StructName struct {
Veldnaam1 Veldtype1
Veldnaam2 Veldtype2
...
}


Hieronder ziet u een voorbeeld van het declareren van een structuur met de naam Person met twee velden name en age van respectievelijk de typen string en int:

type Persoonsstructuur {
naamreeks
leeftijd int
}


In de bovenstaande code hebben we de type trefwoord om een ​​nieuwe structuur met de naam te declareren Persoon met twee velden naam van het type tekenreeks en leeftijd van type int. De velden worden gescheiden door een Nieuwe lijn karakter maar een puntkomma (;) kan ook worden gebruikt om ze te scheiden.



Hoe toegang te krijgen tot Structural Member in Golang

Om toegang te krijgen tot de velden van een struct-instantie in de Go-taal punt (“.”) operator wordt gebruikt. Deze puntoperator wordt gevolgd door een veldnaam. Hier is een voorbeeld van hoe u toegang krijgt tot de naam- en leeftijdsvelden van een Person struct-instantie:

// Maak een nieuwe aan ` Persoon ` struct instantie met naam 'kas' en leeftijd 24
kash := Persoon { naam: 'kas' , leeftijd: 24 }

// Toegang tot de velden van de ` kas ` struct instantie
fmt.Println ( kash.naam ) // Uitgang: 'kas'
fmt.Println ( kash.leeftijd ) // Uitgang: 24


In de bovenstaande code hebben we een nieuwe Person struct-instantie gemaakt met de naam kash met de naam kas en leeftijd 24 . Vervolgens hebben we toegang tot de naam- en leeftijdsvelden van de kash struct-instantie met behulp van de (“.”) operator en print ze naar de console.

Het is belangrijk op te merken dat de velden van een struct-instantie worden benaderd met puntnotatie en niet met de pijl notatie (->) gebruikt in sommige andere programmeertalen. De puntnotatie wordt consistent gebruikt in Go voor toegang tot velden van structs, evenals eigenschappen en methoden van andere typen.

Voorbeeldcode van declareren en toegang krijgen tot het Struct-lid in Golang

Hieronder ziet u een volledig voorbeeld van het declareren van de Person-structuur in Go en het afdrukken van de waarden op het scherm:

pakket belangrijkste
importeren 'fmt'
type Persoonsstructuur {
naamreeks
leeftijd int
}
func hoofd ( ) {
// Maak een nieuwe aan ` Persoon ` struct instantie met naam 'kas' en leeftijd 24
kash := Persoon { naam: 'kas' , leeftijd: 24 }
// Druk de ` naam ` En ` leeftijd ` van ` kas ` struct naar de console
fmt.Printf ( 'Naam: %s \N ' , kash.naam )
fmt.Printf ( 'Leeftijd: %d \N ' , kash.age )
}


In de hierboven geschreven code hebben we eerst de Persoon structuur. Deze structuur bevat twee velden die naam en leeftijd zijn. Daarna hebben we een nieuwe Person struct-instantie gemaakt met de naam kash met de naam kas en leeftijd 24 .

Om naam- en leeftijdsvelden weer te geven, gebruiken we de fmt.Printf functie met de %S En %D formaatspecificaties om respectievelijk de naam- en leeftijdsvelden af ​​te drukken.

Na het uitvoeren verschijnt de volgende code op de console:

Hoe u struct doorgeeft als functieargumenten

Om een ​​struct door te geven als een functieargument in Go, hoeven we alleen maar het struct-type op te geven als het parametertype in de functiehandtekening en vervolgens de struct-instantie door te geven als een argument bij het aanroepen van de functie.

Voorbeeldcode

Het onderstaande voorbeeld laat zien hoe je een Person struct-instantie als een argument kunt doorgeven aan een functie in de Go-taal en de waarden ervan op het scherm kunt afdrukken:

pakket belangrijkste
importeren 'fmt'
// Declareer een structuur met de naam ` Persoon ` met twee velden: ` naam ` En ` leeftijd `
type Persoonsstructuur {
naamreeks
leeftijd int
}
// Verklaar een functie genaamd ` printPerson ` dat duurt een ` Persoon ` structuur als een argument
func printPerson ( p Persoon ) {
fmt.Printf ( 'Naam: %s \N ' , p.naam )
fmt.Printf ( 'Leeftijd: %d \N ' , bladzijde )
}
func hoofd ( ) {
// Maak een nieuwe aan ` Persoon ` struct instantie met naam 'kas' en leeftijd 24
kash := Persoon { naam: 'kas' , leeftijd: 24 }
// Geef de ` kas ` struct instantie naar de ` printPerson ` functie
    printPerson ( kas )
}


In de bovenstaande code hebben we eerst de Person-structuur gedeclareerd met twee velden, naam, En leeftijd . Vervolgens declareren we een functie met de naam printPerson dat een persoonsstructuur als argument neemt en de naam- en leeftijdsvelden ervan op het scherm afdrukt met behulp van de fmt.Printf-functie.

In de main-functie hebben we een nieuwe Person struct-instantie gemaakt met de naam kash met de naam kas en 24 jaar. Vervolgens geven we de kash struct-instantie door aan de printPerson-functie door de printPerson-functie aan te roepen en door te geven kas als argument.

De volgende uitvoer is te zien op de console na het uitvoeren van de bovenstaande code:

Conclusie

In Golang kunnen structuren complexe gegevenstypen vertegenwoordigen en gerelateerde gegevens inkapselen. Een structuur is een gegevenstype dat is opgebouwd uit een of meer velden, die elk een specifieke naam en type hebben gekregen. De velden van een structuur kunnen van elk type zijn, inclusief andere structuren, arrays, functies of interfaces. Dit artikel besprak Go-structuren in detail, lees het artikel voor meer informatie over het declareren en openen van de struct-elementen.