Cum să atribuiți valori implicite pentru câmpurile struct în Golang?

Cum Sa Atribuiti Valori Implicite Pentru Campurile Struct In Golang



Golang este un limbaj de programare modern care a câștigat popularitate în ultimii ani. Una dintre caracteristicile puternice ale Golang este capacitatea sa de a defini și manipula structuri. Structuri sunt tipuri de date definite de utilizator care permit dezvoltatorilor să grupeze câmpuri de date asociate într-un singur obiect. În Go, structuri poate avea valori implicite atribuite câmpurilor lor, ceea ce face inițializarea lor mult mai ușoară.

În acest eseu, vom explora cum să atribuim a valoare implicită pentru un câmp struct în Golang.

Ce sunt câmpurile Struct?

În primul rând, este esențial să înțelegem conceptul de câmpuri struct . The câmpuri struct sunt variabile care sunt grupate pentru a forma a struct obiect. Fiecare câmp struct are un nume și un tip de date. De exemplu, o structură care reprezintă o persoană poate avea câmpuri precum nume, vârstă și sex.







Cum să atribuiți valori implicite pentru câmpurile Struct în Golang?

Valori implicite poate fi atribuit câmpurilor struct în Go folosind:



  • Valori zero implicite
  • Constructorii
  • Literale structurate
  • Valori implicite de câmp

1: Valori zero implicite

În Go, alocarea valorilor implicite câmpurilor struct poate fi realizată cu „ valoare zero ' caracteristică. Această caracteristică atribuie automat o valoare implicită fie „ 0 ” sau ” fals ” la fiecare câmp neinițializat, în funcție de tipul de date. Aceasta înseamnă că nu trebuie să setați în mod explicit valori implicite pentru fiecare câmp din structura, deoarece Go o va face pentru dvs.



Această caracteristică poate fi utilă atunci când aveți de-a face cu structuri mari cu multe câmpuri, deoarece economisește timpul și efortul de a seta manual valorile implicite pentru fiecare câmp.





Iată un exemplu care utilizează valoarea zero pentru a atribui valori implicite pentru câmpurile struct:

pachet principal

import 'fmt'

tip Structura persoanei {
Nume   șir
Vârsta    int
Înălțime plutitoare64
IsMale bool
}

func principal ( ) {
p1 := Persoana { Nume: 'Ioan' , Varsta: 30 }
fmt.Println ( p1.Nume )
fmt.Println ( p1.Vârsta )
fmt.Println ( p1.Inaltime )
fmt.Println ( p1.IsMale )
}

Codul de mai sus definește o Persoană struct cu patru câmpuri: Nume, Vârstă, Înălțime și IsMale, toate fiind de tipul de date bool. Apoi, facem o nouă instanță a clasei Person, p1, și inițializam unele dintre câmpurile acesteia folosind literalmente struct pentru a specifica numele și valorile câmpurilor. The valori implicite zero pentru câmpurile care nu au fost setate în mod explicit în timpul inițializării sunt afișate atunci când imprimați valorile câmpurilor folosind fmt.Println .



Ieșire

2: Constructori

Scriind a constructor pentru struct, puteți, de asemenea, să dați valori implicite pentru câmpurile de struct în Golang. The constructor funcția creează o instanță nouă a structurii și setează valorile implicite pentru câmpurile sale. Această metodă economisește efort și timp, în special atunci când interacționați cu structuri uriașe cu numeroase câmpuri.

Iată un exemplu despre cum se definește a constructor funcție cu valorile de câmp implicite pentru o structură:

pachet principal

import 'fmt'

tip Structura persoanei {
Nume    șir
Vârsta     int
Șir de adresă
}
func NewPerson ( ) * Persoană {
întoarcere & Persoană {
Nume: „John Doe” ,
Vârstă: 30 ,
Abordare: „123 Main St” ,
}
}
func principal ( ) {
p := Persoană nouă ( )
fmt.Println ( p.Nume, p.Vârsta, p.Adresă )
}

În codul de mai sus, a Persoană struct este definită, precum și persoană nouă() funcția, care produce o instanță nouă a Persoană struct cu valori implicite predeterminate. Noi sunam persoană nouă() în principal() pentru a crea o nouă instanță Person cu valorile implicite ale câmpului , iar apoi tipărim valorile câmpurilor acelei instanțe.

Ieșire

3: Literale structurate

În Golang, puteți seta valori implicite pentru câmpurile struct folosind struct literale de asemenea. Pur și simplu construiți o nouă instanță a structurii și setați valorile pentru fiecare câmp care trebuie inițializat. Dacă doriți să setați valori implicite pentru câmpurile pe care nu le inițializați în mod explicit, puteți utiliza caracteristica cu valoare zero.

Iată un exemplu de utilizare struct literale pentru a seta valorile de câmp implicite pentru o structură:

pachet principal

import 'fmt'

tip Structura persoanei {
Nume    șir
Vârsta     int
Șir de adresă
}
func principal ( ) {
p := Persoana {
Nume: „John Doe” ,
Vârstă: 30 ,
}
fmt.Println ( p.Nume, p.Vârsta, p.Adresă )
}

În codul de mai sus, definim a Persoană struct în acest exemplu și creați o nouă instanță a acesteia folosind un literal struct și valori implicite pentru câmpurile sale. Un nou Persoană instanța este creată în main() cu unele valori de câmp populate și altele lăsate necompletate. De când Abordare câmpul nu este inițializat, acesta primește șirul gol care este valoarea implicită pentru acest câmp. În cele din urmă, imprimăm valorile câmpului instanței Person.

Ieșire

4: Valori implicite de câmp

Atribuire valori implicite la câmpuri struct în Go este un proces simplu. The valoare implicită pentru un câmp struct poate fi setat folosind sintaxa fieldName:defaultValue . De exemplu, luați în considerare următoarea definiție a structurii:

tip Structura persoanei {
Șir de nume
Vârsta int
șir de gen
}

Pentru a atribui valori implicite la câmpurile acestei structuri, putem folosi următoarea sintaxă:

p := Persoana {
Nume: „John Doe” ,
Vârstă: 30 ,
Gen: 'Masculin' ,
}

În exemplul de mai sus, am atribuit valori implicite la câmpurile structurii Persoană. Dacă omitem oricare dintre valori în timpul inițializării, valoare implicită va fi folosit în schimb. De exemplu, dacă inițializam un obiect Person astfel:

p := Persoana {
Nume: 'Femeie necunoscută' ,
}

Obiectul Person rezultat va avea valori implicite pentru câmpurile Vârstă și Sex, care sunt 0 și, respectiv, un șir gol.

Iată un cod complet care ilustrează procesul de mai sus:

pachet principal
import 'fmt'

tip Structura persoanei {
Nume   șir
Vârsta    int
șir de gen
}
func principal ( ) {
p1 := Persoana {
Nume: „John Doe” ,
Vârstă: 30 ,
Gen: 'Masculin' ,
}
fmt.Println ( p1 )

p2 := Persoana {
Nume: 'Jeremy' ,
}
fmt.Println ( p2 )
}

În exemplul de mai sus, construim o structură Person care are trei câmpuri: Nume, un int care reprezintă vârsta și Gen, un șir care reprezintă genul. Sintaxa de inițializare a structurii este apoi utilizată pentru a construi două instanțe Person, p1 și p2. p1 este inițializat cu valorile „John Doe” pentru Nume, „30” pentru Vârstă și „Bărbat” pentru Sex, care sunt toate valorile care au fost furnizate în mod expres. Deoarece nu am dat valori pentru Vârstă și Sex, le vor fi atribuite valorile implicite de 0 și, respectiv, un șir gol. p2 este inițial inițial cu doar câmpul Nume furnizat.

Ieșire

Concluzie

Atribuire valori implicite in Go este un aspect esențial al programării cu acest limbaj. Vă ajută să vă asigurați că fiecare instanță de struct creată are date implicite atribuite. Folosind oricare dintre metodele explicate mai sus, dezvoltatorii pot seta valori implicite a câmpurilor de struct în mod eficient.