V jazyku Go je štruktúra kolekciou premenných (polí) zoskupených pod jedným názvom. Ide o zložený dátový typ, ktorý nám umožňuje vytvárať vlastné dátové štruktúry na uchovávanie súvisiacich informácií. Štruktúry v Go sú ako triedy v objektovo orientovanom programovaní ako C a C++, ale nepodporujú dedičnosť. Namiesto toho sa spoliehajú na zloženie, aby dosiahli opätovné použitie kódu. Tento článok sa zaoberá štruktúrami v Golang a ako môžeme deklarovať a pristupovať k členom struct.
Čo je to štruktúra v Golangu
V Golangu je štruktúra zložený dátový typ, ktorý pozostáva z nula alebo viacerých pomenovaných polí, z ktorých každé má špecifický typ. Polia štruktúry môžu byť akéhokoľvek typu, vrátane iných štruktúr, polí, funkcií alebo rozhraní.
Tu je príklad štruktúry v Golang:
typu Štruktúra osoby {
Reťazec FullName
YearsStarý int
Adresa miesta
}
typu Štruktúra adresy {
Reťazec StreetName
CityName reťazec
Reťazec názvu krajiny
}
Tu sme definovali štruktúru osoby, ktorá má tri polia: Celé meno, Roky a Miesto. Pole Location je samo osebe štruktúrou, ktorá má tri polia: StreetName, CityName a CountryName.
Ako deklarovať štruktúru v Golangu
Môžeme deklarovať štruktúru v Golang pomocou typu kľúčové slovo. Názov štruktúry je definovaný za typu kľúčové slovo a jeho polia sú uzavreté v zložených zátvorkách { } . Tu je syntax na deklarovanie štruktúry v Go:
typu StructName štruktúra {
Názov poľa1 Typ poľa1
Názov poľa2 Typ poľa2
...
}
Nižšie je uvedený príklad, ako deklarovať štruktúru s názvom Osoba s dvoma poľami názov a vek typov string a int:
reťazec mena
vek int
}
Vo vyššie uvedenom kóde sme použili typu kľúčové slovo na deklarovanie novej štruktúry s názvom Osoba s dvoma poliami názov typu reťazec a Vek typu int. Polia sú oddelené a Nový riadok charakter ale a bodkočiarka (;) možno použiť aj na ich oddelenie.
Ako získať prístup k členom Struct v Golang
Na prístup k poliam inštancie štruktúry v jazyku Go bodka (.“) používa sa operátor. Za týmto bodkovým operátorom nasleduje názov poľa. Tu je príklad, ako získať prístup k poliam mena a veku inštancie štruktúry osoby:
// Vytvorte nový ` Osoba ` inštancia štruktúry s názvom 'kash' a veku 24kash := Osoba { názov: 'kash' , Vek: 24 }
// Prístup k poliam ` kash ` inštancia štruktúry
fmt.Println ( kash.name ) // Výkon: 'kash'
fmt.Println ( kash.vek ) // Výkon: 24
Vo vyššie uvedenom kóde sme vytvorili novú inštanciu štruktúry osoby s názvom kash s názvom kash a veku 24 . Potom získame prístup k poliam názvu a veku inštancie štruktúry kash pomocou (.“) operátora a vytlačte ich do konzoly.
Je dôležité poznamenať, že k poliam inštancie štruktúry sa pristupuje pomocou bodkovej notácie a nie pomocou šípka zápis (->) používané v niektorých iných programovacích jazykoch. Bodková notácia sa používa konzistentne v rámci Go na prístup k poliam štruktúr, ako aj k vlastnostiam a metódam iných typov.
Príklad kódexu deklarovania a prístupu k členovi štruktúry v Golang
Nižšie je uvedený úplný príklad deklarovania štruktúry Osoba v programe Go a vytlačenia jej hodnôt na obrazovku:
hlavný balíkimportovať 'fmt'
typu Štruktúra osoby {
reťazec mena
vek int
}
func main ( ) {
// Vytvorte nový ` Osoba ` inštancia štruktúry s názvom 'kash' a veku 24
kash := Osoba { názov: 'kash' , Vek: 24 }
// Vytlačte si ` názov ` a ` Vek ` z ` kash ` struct inštancie do konzoly
fmt.Printf ( 'Meno: %s \n ' , kash.name )
fmt.Printf ( 'Vek: %d.' \n ' , kash.age )
}
Vo vyššie napísanom kóde sme najskôr deklarovali Osoba štrukturovať. Táto štruktúra obsahuje dve polia, ktorými sú meno a vek. Potom sme vytvorili novú inštanciu štruktúry osoby s názvom kash s názvom kash a veku 24 .
Na zobrazenie polí mena a veku používame fmt.Printf funkcia s %s a %d špecifikátory formátu na tlač polí mena a veku.
Po spustení sa na konzole zobrazí nasledujúci výstup kódu:
Ako odovzdať štruktúru ako argument funkcie
Ak chcete odovzdať štruktúru ako argument funkcie v Go, musíme jednoducho zadať typ štruktúry ako typ parametra v podpise funkcie a potom pri volaní funkcie odovzdať inštanciu štruktúry ako argument.
Príklad kódu
Nasledujúci príklad ukazuje, ako odovzdať inštanciu štruktúry osoby ako argument funkcii v jazyku Go a vytlačiť jej hodnoty na obrazovku:
hlavný balíkimportovať 'fmt'
// Deklarujte štruktúru s názvom ` Osoba ` s dvoma poliami: ` názov ` a ` Vek `
typu Štruktúra osoby {
reťazec mena
vek int
}
// Vyhlásiť a funkciu pomenovaný ` printPerson ` to trvá a ` Osoba ` štrukturovať ako hádka
func printPerson ( p Osoba ) {
fmt.Printf ( 'Meno: %s \n ' , p.meno )
fmt.Printf ( 'Vek: %d.' \n ' , str )
}
func main ( ) {
// Vytvorte nový ` Osoba ` inštancia štruktúry s názvom 'kash' a veku 24
kash := Osoba { názov: 'kash' , Vek: 24 }
// Prejdite ` kash ` struct inštancia na ` printPerson ` funkciu
printPerson ( kash )
}
Vo vyššie uvedenom kóde sme najprv deklarovali štruktúru Osoba s dvoma poľami, názov, a Vek . Potom deklarujeme funkciu s názvom printPerson ktorý berie štruktúru Osoba ako argument a vytlačí jej polia mena a veku na obrazovku pomocou funkcie fmt.Printf.
V hlavnej funkcii sme vytvorili novú inštanciu štruktúry Person s názvom kash s názvom kash a vek 24. Inštanciu kash struct potom odovzdáme do funkcie printPerson zavolaním funkcie printPerson a odovzdaním kash ako argument.
Po spustení vyššie uvedeného kódu môžete na konzole vidieť nasledujúci výstup:
Záver
V Golangu môžu štruktúry reprezentovať komplexné dátové typy a zapuzdrovať súvisiace dáta. Štruktúra je dátový typ zložený z jedného alebo viacerých polí, z ktorých každé má špecifický názov a typ. Polia štruktúry môžu byť akéhokoľvek typu, vrátane iných štruktúr, polí, funkcií alebo rozhraní. Tento článok podrobne diskutoval o štruktúrach Go, ďalšie informácie o deklarovaní prvkov struct a prístupe k nim nájdete v článku.