Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
- Štruktúry Golang nám umožňujú zoskupovať údaje.
- Sú podobné štruktúram v iných programovacích jazykoch.
- Štruktúry sú užívateľom definované dátové typy a umožňujú vám vytvárať si vlastné užívateľské typy.
- Štruktúry môžu obsahovať akýkoľvek typ údajov vrátane iných štruktúr.
Definícia štruktúry:
``` ísť
zadajte názov_štruktúry struct {
meno_člena typ1
meno_člena typ2
...
meno_člena typN
}
```
– Toto definuje štruktúru s názvom „názov_štruktúry“ s členmi „názov_člena“. Každý člen má typ, ktorým môže byť akýkoľvek platný typ Go.
Vytváranie štruktúr:
``` ísť
var názov_štruktúry =typ_štruktúry {
meno_člena1:hodnota1,
meno_člena2:hodnota2,
...
meno_členaN:hodnotaN
}
```
– Tým sa vytvorí premenná typu „názov_štruktúry“ a jej členovia sa inicializujú s danými hodnotami.
Prístup k členom:
- Na prístup k členu štruktúry použite bodkový operátor:`názov_štruktúry.názov_člena`.
Príklad:
``` ísť
// Definujte štruktúru s názvom osoba s členmi mena a veku.
typ person struct {
Menný reťazec
Vek int
}
func main() {
// Vytvorte osobu s názvom "John Doe".
osoba1 :=osoba{"John Doe", 30}
// Vytlačte Johnovo meno a vek.
fmt.Println("Meno:", osoba1.Meno)
fmt.Println("Vek:", osoba1.Vek)
}
```
Pomenované štruktúry:
- Ak štruktúra obsahuje polia základných dátových typov, potom ju možno deklarovať bez kľúčového slova struct.
``` ísť
zadajte MyStruct struct {
int
b plavák32
c reťazec
}
zadajte svoju štruktúru {
f int 'json:"first"'
l reťazec 'json:"posledný"'
}
```
- Pre `MyStruct` a `vaša štruktúra` vyššie je kľúčové slovo struct voliteľné
- Anonymné štruktúry môžu byť použité na vytváranie ad-hoc dátových typov bez explicitného definovania typu struct.
- Keď sa anonymná štruktúra používa ako pole inej štruktúry alebo ako prvok výrezu/mapy, typ poľa je anonymná štruktúra a značka poľa je názov typu.
``` ísť
typ Štruktúra osoby {
reťazec mena
vek int
}
```
- Alternatívne možno anonymné štruktúry použiť na vytvorenie inštancie štruktúry bez definovania typu štruktúry.
``` ísť
var osoba =struct {
reťazec mena
vek int
}{meno:"Bob", vek:20}
```
- V tomto prípade premenná osoba typu `struct{ name string; age int }` sa vytvorí a inicializuje.
- Vloženie štruktúry do inej štruktúry umožňuje formu dedenia v Go.
``` ísť
typ Štruktúra osoby {
reťazec mena
vek int
}
type Employee struct {
plat int
Osoba
}
```
- Tu „Zamestnanec“ vloží „Osoba“, takže premenná „Zamestnanec“ bude obsahovať polia „Osoba“ (meno a vek), ako aj jej vlastné polia.
``` ísť
emp :=Zamestnanec{plat:100000, Osoba:Osoba{meno:"John", vek:30}}
fmt.Println(zam.plat) // 100 000
fmt.Println(emp.name) // John
```
- Polia vloženej štruktúry sú povýšené na vonkajšiu (obsahujúcu) štruktúru, ako keby boli deklarované v štruktúre, ktorá obsahuje. K poliam „meno“ a „vek“ položky „Person“ je teraz možné pristupovať v premennej „Zamestnanec“ („emp“).
- Štítky môžu byť pripojené k poliam štruktúry, aby poskytli ďalšie informácie. Tieto značky používajú reflexné a kódovače/dekodéry.
``` ísť
typ Štruktúra osoby {
reťazec názvu `json:"name"` // značka json
vek int `xml:"vek"` // značka xml
}
```
- Ak značky obsahujú medzery alebo iné špeciálne znaky.
- Štruktúry poskytujú spôsob, ako zoskupiť súvisiace údaje a vytvoriť si vlastné typy údajov v Go.
- Pomenované a anonymné štruktúry môžu byť použité v závislosti od situácie a vkladanie umožňuje formu dedenia.
- Tagy môžu byť pripojené k poliam štruktúry pre ďalšie metadáta a kompatibilitu so štandardnými knižnicami.