Selles essees uurime, kuidas määrata a vaikeväärtus struktuurivälja jaoks Golangis.
Mis on struktuuriväljad?
Esiteks on oluline mõista mõistet rajada väljad . The rajada väljad on muutujad, mis on rühmitatud moodustama a struktuur objektiks. Iga struktuuri väli sellel on nimi ja andmetüüp. Näiteks isikut esindaval struktuuril võivad olla sellised väljad nagu nimi, vanus ja sugu.
Kuidas määrata Golangi struktuuriväljadele vaikeväärtusi?
Vaikeväärtused saab määrata Go struct väljadele, kasutades:
- Vaikimisi nullväärtused
- Konstruktorid
- Struktuuriliteraalid
- Väljade vaikeväärtused
1: vaikimisi nullväärtused
Go-s saab struct väljadele vaikeväärtuste määramise saavutada nupuga ' nullväärtus ' tunnusjoon. See funktsioon määrab automaatselt vaikeväärtuse kas ' 0 ” või „ vale ” igale initsialiseerimata väljale, olenevalt andmetüübist. See tähendab, et te ei pea konkreetselt struktuuri igale väljale vaikeväärtusi määrama, kuna Go teeb seda teie eest.
See funktsioon võib olla kasulik suurte, paljude väljadega struktuuride käsitlemisel, kuna see säästab aega ja vaeva iga välja vaikeväärtuste käsitsi määramisel.
Siin on näide, mis kasutab struktuuriväljadele vaikeväärtuste määramiseks nullväärtust:
pakett peamineimportida 'fmt'
tüüp Isiku struktuur {
Name string
Vanus int
Kõrgus ujuki 64
IsMale bool
}
func main ( ) {
p1 := Isik { Nimi: 'John' , Vanus: 30 }
fmt.Println ( p1.Nimi )
fmt.Println ( p1.Vanus )
fmt.Println ( p1.Kõrgus )
fmt.Println ( p1.OnMale )
}
Ülaltoodud kood määratleb isiku struktuur nelja väljaga: nimi, vanus, pikkus ja isane, mis kõik on tõeväärtuse andmetüüpi. Seejärel loome klassist Isik uue eksemplari p1 ja initsialiseerime mõned selle väljad, kasutades väljade nimede ja väärtuste täpsustamiseks struct literaale. The vaikimisi nullväärtused väljade jaoks, mida initsialiseerimisel otseselt ei määratud, kuvatakse, kui prindite väljade väärtused kasutades fmt.Println .
Väljund
2: Konstruktorid
Kirjutades a konstruktor funktsiooni struct jaoks, saate määrata ka Golangi struct väljadele vaikeväärtused. The konstruktor funktsioon loob struktuuri uue eksemplari ja määrab selle väljadele vaikeväärtused. See meetod säästab vaeva ja aega, eriti kui suhtlete tohutute arvukate väljadega struktuuridega.
Siin on näide, kuidas määratleda a konstruktor funktsioon struktuuri vaikevälja väärtustega:
pakett peamineimportida 'fmt'
tüüp Isiku struktuur {
Nimi string
Vanus int
Aadressi string
}
func NewPerson ( ) * Isik {
tagasi & Isik {
Nimi: 'John Doe' ,
Vanus: 30 ,
Aadress: '123 Main Street' ,
}
}
func main ( ) {
p := UusPerson ( )
fmt.Println ( lk.Nimi, lk.Vanus, lk.Aadress )
}
Ülaltoodud koodis on a Isik struct on määratletud, samuti uus inimene() funktsioon, mis loob uue eksemplari Isik etteantud vaikeväärtustega struktuur. Me helistame uus inimene() sisse peamine () uue isiku eksemplari loomiseks välja vaikeväärtused ja prindime seejärel välja selle eksemplari väljade väärtused.
Väljund
3: Struktuuriliteraalid
Golangis saate määrata struct väljade vaikeväärtused kasutades struktuur literaalid samuti. Lihtsalt looge struktuuri uus eksemplar ja määrake väärtused igale lähtestatavale väljale. Kui soovite määrata vaikeväärtused väljadele, mida te otseselt ei initsialiseeri, saate kasutada nullväärtuse funktsiooni.
Siin on näide kasutamise kohta struktuur literaalid struktuuri jaoks välja vaikeväärtuste määramiseks:
pakett peamineimportida 'fmt'
tüüp Isiku struktuur {
Nimi string
Vanus int
Aadressi string
}
func main ( ) {
p := Isik {
Nimi: 'John Doe' ,
Vanus: 30 ,
}
fmt.Println ( lk.Nimi, lk.Vanus, lk.Aadress )
}
Ülaltoodud koodis määratleme a Isik struct selles näites ja looge sellest uus eksemplar, kasutades struct literaali ja selle väljade vaikeväärtusi. Uus Isik eksemplar luuakse kaustas main(), mõned välja väärtused on täidetud ja teised tühjaks jäetud. Alates Aadress välja ei lähtestata, saab see tühja stringi, mis on selle välja vaikeväärtus. Lõpuks prindime isiku eksemplari välja väärtused.
Väljund
4: väljade vaikeväärtused
Määramine Vaikeväärtused juurde rajada väljad in Go on lihtne protsess. The vaikeväärtus struct välja jaoks saab määrata süntaksi abil fieldName:defaultValue . Näiteks kaaluge järgmist struktuuri määratlust:
tüüp Isiku struktuur {Nime string
Vanus int
Soo string
}
Määramiseks Vaikeväärtused Selle struktuuri väljadele saame kasutada järgmist süntaksit:
p := Isik {Nimi: 'John Doe' ,
Vanus: 30 ,
Sugu: 'Mees' ,
}
Ülaltoodud näites oleme määranud Vaikeväärtused Isikustruktuuri väljadele. Kui jätame lähtestamise ajal mõne väärtuse välja, siis vaikeväärtus selle asemel kasutatakse. Näiteks kui initsialiseerime isikuobjekti järgmiselt:
p := Isik {Nimi: 'Jane Doe' ,
}
Saadud isikuobjektil on Vaikeväärtused väljadele Vanus ja Sugu, mis on vastavalt 0 ja tühi string.
Siin on täielik kood, mis illustreerib ülaltoodud protsessi:
pakett peamineimportida 'fmt'
tüüp Isiku struktuur {
Name string
Vanus int
Soo string
}
func main ( ) {
p1 := Isik {
Nimi: 'John Doe' ,
Vanus: 30 ,
Sugu: 'Mees' ,
}
fmt.Println ( p1 )
p2 := Isik {
Nimi: 'Jeremy' ,
}
fmt.Println ( p2 )
}
Ülaltoodud näites loome isikustruktuuri, millel on kolm välja: nimi, vanust tähistav int ja sugu, string, mis tähistab sugu. Struktuuri initsialiseerimise süntaksit kasutatakse seejärel kahe isiku eksemplari p1 ja p2 konstrueerimiseks. p1 lähtestatakse väärtustega „John Doe” (nimi), „30” (vanus) ja „Male” (soo), mis kõik on selgesõnaliselt esitatud väärtused. Kuna me ei andnud vanuse ja soo jaoks väärtusi, määratakse neile vastavalt vaikeväärtused 0 ja tühi string. p2 lähtestatakse algselt ainult väljaga Nimi.
Väljund
Järeldus
Määramine Vaikeväärtused in Go on selle keelega programmeerimise oluline aspekt. See aitab tagada, et igale loodud struktuuri eksemplarile on määratud vaikeandmed. Kasutades mõnda ülalkirjeldatud meetodit, saavad arendajad määrata Vaikeväärtused struktuurivälju tõhusalt.