Co jsou struktury v Golangu

Co Jsou Struktury V Golangu



V jazyce Go je struktura sbírkou proměnných (polí) seskupených pod jedním názvem. Jedná se o složený datový typ, který nám umožňuje vytvářet vlastní datové struktury pro uložení souvisejících informací. Struktury v Go jsou jako třídy v objektově orientovaném programování jako C a C++, ale nepodporují dědičnost. Místo toho spoléhají na složení, aby dosáhli opětovného použití kódu. Tento článek pojednává o strukturách v Golangu a o tom, jak můžeme deklarovat členy struktury a přistupovat k nim.

Co je to struktura v Golangu

V Golangu je struktura složený datový typ, který se skládá z nula nebo více pojmenovaných polí, z nichž každé má specifický typ. Pole struktury mohou být libovolného typu, včetně jiných struktur, polí, funkcí nebo rozhraní.







Zde je příklad struktury v Golang:



typ Struktura osoby {
Řetězec FullName
YearsStarý int
Adresa umístění
}
typ Struktura adresy {
Řetězec StreetName
CityName    řetězec
Řetězec názvu země
}


Zde jsme definovali strukturu osoby, která má tři pole: Celé jméno, Roky a Umístění. Pole Location je samo o sobě strukturou, která má tři pole: StreetName, CityName a CountryName.



Jak deklarovat strukturu v Golangu

Můžeme deklarovat strukturu v Golang pomocí typ klíčové slovo. Název struktury je definován za typ klíčové slovo a jeho pole jsou uzavřena ve složených závorkách { } . Zde je syntaxe pro deklaraci struktury v Go:





typ StructName struktura {
Název pole1 Typ pole1
Název pole2 Typ pole2
...
}


Níže je uveden příklad, jak deklarovat strukturu s názvem Osoba se dvěma poli název a věk typů string a int:

typ Struktura osoby {
jmenný řetězec
věk int
}


Ve výše uvedeném kódu jsme použili typ klíčové slovo pro deklaraci nové struktury s názvem Osoba se dvěma poli název typu řetězec a stáří typu int. Pole jsou oddělena a Nový řádek charakter, ale a středník (;) lze také použít k jejich oddělení.



Jak získat přístup ke Struct Member v Golang

Pro přístup k polím instance struct v jazyce Go tečka (.“) používá se operátor. Za tímto tečkovým operátorem následuje název pole. Zde je příklad, jak získat přístup k polím jména a věku instance struktury osoby:

// Vytvoř nový ' Osoba ' instance struktury s názvem 'kash' a věk 24
kash := Osoba { název: 'kash' , věk: 24 }

// Přístup k polím ' kash ' instance struktury
fmt.Println ( kash.name ) // Výstup: 'kash'
fmt.Println ( kash.age ) // Výstup: 24


Ve výše uvedeném kódu jsme vytvořili novou instanci struktury osoby s názvem kash s názvem kash a věk 24 . Poté přistupujeme k polím jména a věku instance struktury kash pomocí (.“) operátora a vytisknout je na konzoli.

Je důležité poznamenat, že k polím instance struktury se přistupuje pomocí tečkové notace, nikoli pomocí tečkové notace Šíp zápis (->) používané v některých dalších programovacích jazycích. Tečkový zápis se používá konzistentně napříč Go pro přístup k polím struktur, stejně jako k vlastnostem a metodám jiných typů.

Příklad kódu deklarace a přístupu ke členu struktury v Golangu

Níže je uveden úplný příklad deklarace struktury Osoba v Go a vytištění jejích hodnot na obrazovku:

hlavní balíček
import 'fmt'
typ Struktura osoby {
jmenný řetězec
věk int
}
func main ( ) {
// Vytvoř nový ' Osoba ' instance struktury s názvem 'kash' a věk 24
kash := Osoba { název: 'kash' , věk: 24 }
// Vytiskněte ' název ' a ' stáří ' z ' kash ' struct instance do konzole
fmt.Printf ( 'Jméno: %s \n ' , kash.name )
fmt.Printf ( 'Letitý \n ' , kash.age )
}


Ve výše napsaném kódu jsme nejprve deklarovali Osoba strukturovat. Tato struktura obsahuje dvě pole, kterými jsou jméno a věk. Poté jsme vytvořili novou instanci struktury osoby s názvem kash s názvem kash a věk 24 .

K zobrazení polí jména a věku používáme fmt.Printf funkce s %s a %d specifikátory formátu pro tisk polí jména a věku.

Po spuštění se na konzole objeví následující výstup kódu:

Jak předat strukturu jako argument funkce

Abychom předali strukturu jako argument funkce v Go, musíme jednoduše zadat typ struct jako typ parametru v podpisu funkce a poté předat instanci struktury jako argument při volání funkce.

Příklad kódu

Níže uvedený příklad ukazuje, jak předat instanci struktury Person jako argument funkci v jazyce Go a vytisknout její hodnoty na obrazovku:

hlavní balíček
import 'fmt'
// Deklarujte strukturu pojmenovanou ' Osoba ' se dvěma poli: ' název ' a ' stáří '
typ Struktura osoby {
jmenný řetězec
věk int
}
// Prohlásit a funkce jmenoval ' tisknout Osoba ' to trvá a ' Osoba ' strukturovat tak jako hádka
func printPerson ( p Osoba ) {
fmt.Printf ( 'Jméno: %s \n ' , p.jméno )
fmt.Printf ( 'Letitý \n ' , str )
}
func main ( ) {
// Vytvoř nový ' Osoba ' instance struktury s názvem 'kash' a věk 24
kash := Osoba { název: 'kash' , věk: 24 }
// Předat ' kash ' struct instance do ' tisknout Osoba ' funkce
tisknout Osoba ( kash )
}


Ve výše uvedeném kódu jsme nejprve deklarovali strukturu Osoba se dvěma poli, název, a stáří . Poté deklarujeme funkci pojmenovanou tisknout Osoba která vezme strukturu Osoba jako argument a vytiskne její pole jména a stáří na obrazovku pomocí funkce fmt.Printf.

V hlavní funkci jsme vytvořili novou instanci struktury Person s názvem kash s názvem kash a věk 24 let. Instanci struktury kash pak předáme funkci printPerson voláním funkce printPerson a předáním kash jako argument.

Po spuštění výše uvedeného kódu lze na konzole vidět následující výstup:

Závěr

V Golangu mohou struktury reprezentovat komplexní datové typy a zapouzdřit související data. Struktura je datový typ složený z jednoho nebo více polí, z nichž každé má určitý název a typ. Pole struktury mohou být libovolného typu, včetně jiných struktur, polí, funkcí nebo rozhraní. Tento článek podrobně pojednával o strukturách Go, další informace o deklaraci prvků struct a přístupu k nim naleznete v článku.