Šiame rašinyje išnagrinėsime, kaip priskirti a Numatytoji reikšmė struktūriniam laukui Golange.
Kas yra struktūriniai laukai?
Pirma, labai svarbu suprasti sąvoką kurti laukus . The kurti laukus yra kintamieji, kurie sugrupuoti į a struktūra objektas. Kiekvienas struktūrinis laukas turi pavadinimą ir duomenų tipą. Pavyzdžiui, asmenį vaizduojanti struktūra gali turėti tokius laukus kaip vardas, amžius ir lytis.
Kaip priskirti numatytąsias reikšmes struktūriniams laukams Golange?
Numatytosios vertės galima priskirti struct laukams Go naudojant:
- Numatytosios nulinės reikšmės
- Konstruktoriai
- Struktūriniai raštai
- Numatytosios lauko reikšmės
1: numatytosios nulinės reikšmės
„Go“ numatytąsias vertes struct laukams galima pasiekti naudojant „ nulinė vertė “ funkcija. Ši funkcija automatiškai priskiria numatytąją reikšmę arba ' 0 “ arba „ klaidinga “ į kiekvieną neinicializuotą lauką, atsižvelgiant į duomenų tipą. Tai reiškia, kad jums nereikia aiškiai nustatyti numatytųjų verčių kiekvienam struktūros laukui, nes „Go“ tai padarys už jus.
Ši funkcija gali būti naudinga dirbant su didelėmis struktūromis su daugybe laukų, nes sutaupoma laiko ir pastangų rankiniu būdu nustatant numatytąsias kiekvieno lauko vertes.
Štai pavyzdys, kuriame nulinė reikšmė naudojama struktūrinių laukų numatytosioms reikšmėms priskirti:
pagrindinis paketasimportuoti 'fmt'
tipo Asmens struktūra {
pavadinimo eilutę
Amžius tarp
Aukštis plūdė64
IsMale bool
}
pagrindinė funkcija ( ) {
p1 := Asmuo { Vardas: 'Jonas' , Amžius: 30 }
fmt.Println ( p1.Vardas )
fmt.Println ( p1.Amžius )
fmt.Println ( p1.Aukštis )
fmt.Println ( p1.Ar Vyras )
}
Aukščiau pateiktas kodas apibrėžia asmenį struktūra su keturiais laukais: Vardas, Amžius, Ūgis ir IsMale, kurie visi yra bool duomenų tipo. Tada sukuriame naują asmens klasės p1 egzempliorių ir inicijuojame kai kuriuos jos laukus naudodami struct literals, kad nurodytume laukų pavadinimus ir reikšmes. The numatytosios nulio reikšmės laukams, kurie nebuvo aiškiai nustatyti inicijavimo metu, rodomi, kai spausdinate laukų reikšmes naudodami fmt.Println .
Išvestis
2: Konstruktoriai
Rašydamas a konstruktorius funkcijai struct, taip pat galite suteikti numatytąsias reikšmes struct laukams Golang. The konstruktorius funkcija sukuria naują struktūros egzempliorių ir nustato numatytąsias jo laukų reikšmes. Šis metodas taupo pastangas ir laiką, ypač sąveikaujant su didžiulėmis struktūromis su daugybe laukų.
Štai pavyzdys, kaip apibrėžti a konstruktorius funkcija su numatytosiomis struktūros lauko reikšmėmis:
pagrindinis paketasimportuoti 'fmt'
tipo Asmens struktūra {
Pavadinimas eilutė
Amžius tarpt
Adreso eilutė
}
Func NewPerson ( ) * Asmuo {
grąžinti & Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
Adresas: '123 Main St' ,
}
}
pagrindinė funkcija ( ) {
p := NewPerson ( )
fmt.Println ( p.Vardas, p.Amžius, p.Adresas )
}
Aukščiau pateiktame kode a Asmuo apibrėžta struktūra, taip pat naujas asmuo () funkcija, kuri sukuria naują egzempliorių Asmuo struktūra su iš anksto nustatytais numatytais parametrais. Mes skambiname naujas asmuo () in pagrindinis () sukurti naują asmens egzempliorių su numatytosios lauko reikšmės , tada išspausdiname to egzemplioriaus laukų reikšmes.
Išvestis
3: Struktūros raidės
Golange galite nustatyti numatytąsias struktūrų laukų reikšmes naudodami struktūrinės raidės taip pat. Tiesiog sukurkite naują struktūros egzempliorių ir nustatykite kiekvieno lauko, kurį reikia inicijuoti, reikšmes. Jei norite nustatyti numatytąsias reikšmes laukams, kurių aiškiai neinicializuojate, galite naudoti nulinės reikšmės funkciją.
Štai pavyzdys, kaip naudoti struktūrinės raidės norėdami nustatyti numatytąsias struktūros lauko vertes:
pagrindinis paketasimportuoti 'fmt'
tipo Asmens struktūra {
Pavadinimas eilutė
Amžius tarpt
Adreso eilutė
}
pagrindinė funkcija ( ) {
p := Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
}
fmt.Println ( p.Vardas, p.Amžius, p.Adresas )
}
Aukščiau pateiktame kode apibrėžiame a Asmuo struct šiame pavyzdyje ir sukurkite naują jo egzempliorių naudodami struct literalą ir numatytąsias jo laukų reikšmes. Naujas Asmuo egzempliorius sukuriamas main(), kai kurios lauko reikšmės yra užpildytos, o kitos paliekamos tuščios. Nuo pat Adresas laukas nėra inicijuotas, jis gauna tuščią eilutę, kuri yra numatytoji šio lauko reikšmė. Galiausiai išspausdiname asmens egzemplioriaus lauko reikšmes.
Išvestis
4: numatytosios lauko reikšmės
Priskyrimas numatytosios vertės į kurti laukus in Go yra paprastas procesas. The Numatytoji reikšmė struct lauką galima nustatyti naudojant sintaksę fieldName:defaultValue . Pavyzdžiui, apsvarstykite šį struktūros apibrėžimą:
tipo Asmens struktūra {Vardo eilutė
Amžius tarpt
Lyties eilutė
}
Paskirti numatytosios vertės šios struktūros laukams galime naudoti šią sintaksę:
p := Asmuo {Vardas: 'Jonas Doe' ,
Amžius: 30 ,
Lytis: 'Patinas' ,
}
Aukščiau pateiktame pavyzdyje mes priskyrėme numatytosios vertės į Asmens struktūros laukus. Jei inicijavimo metu praleisime kurią nors iš reikšmių, Numatytoji reikšmė bus naudojamas vietoj. Pavyzdžiui, jei inicijuojame asmens objektą taip:
p := Asmuo {Vardas: 'Jane Doe' ,
}
Gautas Asmens objektas turės numatytosios vertės laukuose Amžius ir Lytis, kurie yra atitinkamai 0 ir tuščia eilutė.
Čia yra visas kodas, iliustruojantis aukščiau pateiktą procesą:
pagrindinis paketasimportuoti 'fmt'
tipo Asmens struktūra {
pavadinimo eilutę
Amžius tarp
Lyties eilutė
}
pagrindinė funkcija ( ) {
p1 := Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
Lytis: 'Patinas' ,
}
fmt.Println ( p1 )
p2 := Asmuo {
Vardas: 'Džeremis' ,
}
fmt.Println ( p2 )
}
Aukščiau pateiktame pavyzdyje sukuriame asmens struktūrą, kurią sudaro trys laukai: vardas, amžių nurodantis int ir lytis, lytį žyminti eilutė. Tada struktūros inicijavimo sintaksė naudojama dviem asmens egzemplioriams, p1 ir p2, sukurti. p1 inicijuojamas su reikšmėmis „John Doe“ (vardas), „30“ – amžius ir „vyras“ – lytis, kurios visos yra aiškiai pateiktos vertės. Kadangi nepateikėme amžiaus ir lyties verčių, joms bus priskirtos atitinkamai numatytosios 0 ir tuščios eilutės reikšmės. p2 iš pradžių inicijuojamas tik pateikiant lauką Pavadinimas.
Išvestis
Išvada
Priskyrimas numatytosios vertės in Go yra esminis programavimo šia kalba aspektas. Tai padeda užtikrinti, kad kiekvienam sukurtam struktūros egzemplioriui būtų priskirti numatytieji duomenys. Naudodami bet kurį iš aukščiau paaiškintų metodų, kūrėjai gali nustatyti numatytosios vertės efektyviai sutvarkyti laukus.