Cuprins[Ascunde][Spectacol]
- 1. Descrie Golang.
- 2. Ce avantaje are Go față de alte limbi?
- 3. În programarea Golang, ce este fmt?
- 4. Ce este mai exact Go Interfaces?
- 5. Ce sunt exact literalele șir?
- 6. Cum sunt configurate mediile de lucru și parametrii în Golang?
- 7. Descrieți pachetele Golang?
- 8. Ce tipuri de date sunt acceptate de Golang?
- 9. Ce înțelegeți prin declararea de tip static a unei variabile în Golang?
- 10. În Golang, ce este declarația variabilei dinamice?
- 11. Cum pot utiliza pachete personalizate în limbajul de programare GO?
- 12. Ce este mai exact o goroutină? Cum poți să-i oprești?
- 13. Descrie o rună.
- 14. Care este idiomul Go pentru reprezentarea enumerarilor?
- 15. Cum se verifică tipul unei variabile în timpul execuției?
- 16. Descrieți canalele Go.
- 17. Explicați metodele Golang.
- 18. Ce este mai exact o cursă de date?
- 19. Ce este mai exact colectarea gunoiului Go?
- 20. Descrieți etapele testării folosind Golang.
- 21. Ce sunt exact feliile în Go?
- 22. Ce este mai exact memoria heap?
- 23. Ce sunt exact închiderile de funcții?
- 24. Ce înseamnă declarația goto a lui Golang?
- 25. În Golang, ce sunt Lvalue și Rvalue?
- 26. În Go, care sunt constructele bucle?
- 27. Ce sunt exact modelele de design?
- 28. Care este cel mai bun pachet Golang pentru operațiuni simple cu fișiere? Ce pachete suplimentare Golang sunt folosite pentru manipularea fișierelor?
- 29. Dați o explicație despre Arhitectura orientată pe obiecte a lui Golang.
- 30. Ce tipuri de conversie acceptă Golang?
- 31. Descrieți scopul și funcționarea aserției tip.
- 32. Ce este exact un tip struct?
- 33. Explicați matricea de suport a unei secțiuni.
- 34. Este necesar să existe atât variabile GOPATH, cât și GOROOT și, dacă da, de ce?
- 35. Golang permite moștenirea?
- 36. În Golang, cum apare CGo?
- 37. Care este tipul de indicator în Golang?
- Concluzie
Limbajul de programare Go, adesea cunoscut sub numele Golang, este un limbaj de programare open-source care este comparabil cu C, dar este conceput pentru compilare rapidă, concurență fluidă și comoditate pentru dezvoltatori.
Acest limbaj a fost dezvoltat și folosit de Google, dar a câștigat popularitate în alte firme în ultimii ani, pe măsură ce cererea de programare concomitentă în rețea a crescut.
Golang facilitează dezvoltarea dezvoltatorilor, oferind compilare optimă pentru dezvoltarea rapidă a aplicațiilor software, concurență mai fluidă, eficiență îmbunătățită a timpului de rulare și mai puține defecte.
Golang devine rapid un limbaj de programare corporativă popular, cu mai multe opțiuni de angajare. Mulți gigante IT, cum ar fi Google, Uber și Apple, adoră Golang pentru timpul de dezvoltare mai scurt, ușurința de învățare, durata de funcționare îmbunătățită, colectarea gunoiului și alte beneficii.
Pe măsură ce tot mai multe firme folosesc Golang, nevoia de programatori Golang crește. Linia de jos? Învățarea Golang-ului ar oferi mai multe perspective de angajare.
Dacă doriți să lucrați ca dezvoltator Golang, trebuie să vă pregătiți corespunzător pentru interviu. De aceea am compilat această colecție cuprinzătoare de întrebări pentru interviu Golang.
În această postare, vom prezenta întrebări de la interviu Golang de la bază până la avansate, astfel încât să puteți trece cu ușurință prin interviu.
1. Descrie Golang.
Go este un nivel înalt, cu scop general limbaj de programare care acceptă colectarea gunoiului și programarea concomitentă și este scris foarte strâns și static. Aplicațiile Go sunt create prin utilizarea pachetelor, care oferă un management eficient al dependenței.
În plus, profită de abordarea compilare-link pentru a crea fișiere binare executabile din codul sursă. Go este un limbaj simplu, cu structuri sintactice frumoase și clare.
Vine cu un set de biblioteci standard puternice care pot fi folosite de dezvoltatori pentru a rezolva probleme fără a fi nevoie de alte pachete.
2. Ce avantaje are Go față de alte limbi?
- Codul Go a fost dezvoltat având în vedere caracterul practic, spre deosebire de alte limbaje care au început ca experimente intelectuale. Fiecare alegere în sintaxă și caracteristică este făcută ținând cont de comoditatea programatorului.
- Deoarece colectarea automată a gunoiului rulează concomitent cu aplicația, este mult mai eficientă decât Java sau Python.
- Scalabilitatea și concurența sunt ambele prioritare în Golang.
- Golang este de obicei considerat a fi mai ușor de înțeles decât alte limbi, deoarece are o structură de cod unică, standardizată.
3. În programarea Golang, ce este fmt?
Pachetul Format este notat cu simbolul fmt. Utilizatorii pot utiliza această funcționalitate pentru a formata textul de bază, valorile sau orice altceva și le pot imprima.
De asemenea, permite utilizatorilor să primească intrări de terminal, să scrie într-un fișier cu un scriitor și chiar să creeze mesaje de eroare fanteziste la comandă. Acest pachet se referă la formatarea intrării și ieșirii.
4. Ce este mai exact Go Interfaces?
Interfețele din Go diferă de cele din alte limbi. Interfețele Go sunt un tip special care este folosit pentru a exprima o colecție de una sau mai multe semnături de metodă.
Interfața este formată prin utilizarea termenului „tip”, urmat de numele și interfața de cuvinte cheie. Interfețele pot fi definite după cum urmează:
- o colecție de metode
- Tip
5. Ce sunt exact literalele șir?
Un șir literal este o constantă șir produsă prin concatenarea literelor. Literale șiruri brute și interpretate sunt cele două tipuri de literale șiruri. Literale de șir brute sunt încadrate de backticks (foo) și conțin caractere UTF-8 neinterpretate.
Literale de șir interpretate sunt șiruri scrise între ghilimele duble și care includ orice caracter, cu excepția linie nouă și ghilimele duble incomplete.
6. Cum sunt configurate mediile de lucru și parametrii în Golang?
Mediile de lucru și setările pot fi configurate folosind JSON, care este utilizat pe scară largă în zilele noastre. Faptul că JSON este inclus în biblioteca standard este principalul său avantaj.
Biblioteca standard oferă metode de scriere pentru scopul propus structură de date, ceea ce îl face foarte lizibil. Pachetul YAML pentru Go este o alegere suplimentară.
7. Descrieți pachetele Golang?
Pachetele sunt foldere care adăpostesc alte pachete și codul lor sursă în spațiul de lucru Go. Pachetele legate includ tot codul, inclusiv variabilele, funcțiile și tipurile, care sunt scrise în fișierele sursă.
Fiecare fișier sursă face parte dintr-un pachet, iar pachetele go pot fi stocate și în interiorul pachetelor.
8. Ce tipuri de date sunt acceptate de Golang?
Golang folosește următoarele tipuri:
- Metodă
- boolean
- Numeric
- Şir
- Pointer
- Funcţie
- interfaţă
- Felie
- structura
- Hartă
- Canal
- Mulțime
9. Ce înțelegeți prin declararea de tip static a unei variabile în Golang?
Compilatorul poate continua cu o altă compilare fără a fi nevoie să aibă informații complete despre variabilă datorită declarațiilor de variabile de tip static, care îl asigură că există o singură variabilă cu tipul și numele dat.
O declarație de variabilă este importantă doar în timpul compilării; compilatorul necesită o variabilă reală și declarație la conectarea la aplicație.
10. În Golang, ce este declarația variabilei dinamice?
Compilatorul trebuie să explice tipul de variabilă dintr-o declarație de variabilă de tip dinamic pe baza sumei transferate către aceasta. Ca o condiție necesară, compilatorul nu necesită o variabilă pentru a clasifica static.
11. Cum pot utiliza pachete personalizate în limbajul de programare GO?
Dacă creați un proiect separat go get -table pentru biblioteca dvs. și este doar pentru uz intern, puteți scrie cod astfel.
- Plasați directorul fișierelor bibliotecii sub directorul proiectului dvs.
- Faceți referire la bibliotecă după calea sa relativ la rădăcina spațiului de lucru care conține proiectul.
12. Ce este mai exact o goroutină? Cum poți să-i oprești?
O goroutine este o funcție sau o procedură care rulează simultan cu alte goroutine pe un fir de goroutine dedicat. Firele Goroutine sunt mai ușoare decât firele obișnuite, iar majoritatea aplicațiilor Golang folosesc mii de Goroutine simultan.
O goroutine poate fi oprită trecându-i un canal de semnal. Goroutines poate răspunde la semnale numai dacă sunt direcționați să verifice, prin urmare include verificări în locuri rezonabile, cum ar fi partea de sus a buclei for.
13. Descrie o rună.
În Go, o rună este un tip încorporat cu numele int32. Unicode CodePoint servește drept rună în Go. Indiferent de câți octeți ocupă punctul de cod, acesta poate fi reprezentat printr-o rună.
Runele nu trebuie să fie în ordine într-un șir. Deși putem converti între șir și rună, acestea nu sunt la fel.
14. Care este idiomul Go pentru reprezentarea enumerarilor?
Limbajul de programare Golang nu acceptă direct enumerari. Iota și constantele pot fi folosite pentru a implementa enumări. Oricare dintre următoarele abordări poate fi utilizată pentru a implementa un tip enumerat:
- introducerea unui tip întreg nou
- Iota este folosit pentru a indica valoarea sa.
- Prin furnizarea unei funcții String tipului
15. Cum se verifică tipul unei variabile în timpul execuției?
Comutatorul de tip este cea mai eficientă abordare pentru a determina tipul unei variabile în timp real. Variabilele sunt evaluate mai degrabă după tip decât după valoare atunci când se utilizează comutatorul de tip.
Atât un caz implicit, care este executat dacă niciunul dintre cazuri nu este adevărat, cât și cel puțin un caz, care servește ca instrucțiune condiționată, sunt prezente în fiecare Switch. Puteți, de exemplu, să proiectați un comutator de tip care determină dacă valoarea interfeței pe care o includ este de tipul int sau șir:
16. Descrieți canalele Go.
Un canal go permite transmiterea și transferul de date între goroutine. Datele de același tip pot fi trimise pe un canal.
Goroutines sunt capabili să trimită și să primească date pe același canal datorită fluxului de date bidirecțional al canalului.
17. Explicați metodele Golang.
Golang nu oferă clase, dar suportă metode. Aceste metode sunt identice cu funcțiile, cu excepția faptului că metodele Go au un parametru receptor.
Metoda Go are acces la atributele receptorului prin intermediul parametrilor receptorului. Metodele Go, cunoscute și sub numele de funcții receptor, ajută la prezentarea unei idei mai precise și mai reale.
18. Ce este mai exact o cursă de date?
Cea mai comună și dificilă depanare este o cursă de date. Accesul nesincronizat la memoria partajată sau execuția mai multor rutine în același timp fără o manipulare separată are ca rezultat o eroare a cursei de date.
19. Ce este mai exact colectarea gunoiului Go?
Colectarea gunoiului reutilizează stocarea care a fost alocată dinamic unui program pentru a fi utilizată de alte obiecte. Cuvântul se referă adesea la regenerarea automată a colectorului de deșeuri pentru depozitarea de rutină, mai degrabă decât la codul explicit (furnizat de un programator) pentru a elibera anumite blocuri de memorie.
Colectarea automată a gunoiului începe frecvent atunci când cantitatea de RAM liberă scade sub un prag predefinit sau după un anumit număr de alocări.
Eliminarea elementelor pe care software-ul nu le mai necesită pentru a crea un loc în memorie pentru obiecte mai dinamice este denumită „colectare de gunoi”.
20. Descrieți etapele testării folosind Golang.
Golang oferă testarea automată a pachetelor folosind suite de testare personalizate. Pentru a stabili o nouă suită, creați un fișier care se termină cu _test.go și include o funcție TestXxx, unde Xxx este înlocuit cu numele caracteristicii pe care o testați.
O funcție care testează capabilitățile de conectare, de exemplu, ar fi numită TestLogin. Fișierul suită de testare este apoi inclus în același pachet cu fișierul testat.
Fișierul de testare va fi omis în timpul execuției obișnuite, dar va rula când introduceți comanda go test.
21. Ce sunt exact feliile în Go?
Slicele sunt un tip de date Go important care oferă o interfață mai puternică pentru secvențe decât matrice. Slicele, spre deosebire de matrice, sunt tastate numai în funcție de elementele pe care le conțin (nu de numărul de elemente).
Pentru a construi o felie goală cu o lungime care nu este zero, utilizați cuvântul cheie încorporat „make”.
22. Ce este mai exact memoria heap?
Stocăm obiecte formate dinamic și variabile în memoria heap. Când nu mai folosim un obiect, de obicei ștergem memoria heap pe care a ocupat-o.
23. Ce sunt exact închiderile de funcții?
Închiderile de funcții sunt un tip de valoare a funcției care fac variabile referite extern. Funcția are acces și control asupra valorilor variabilelor la care se face referire.
Ca o ilustrație, închiderea returnată de un adder() este fiecare legată de o variabilă sumă diferită referită.
24. Ce înseamnă declarația goto a lui Golang?
Declarația goto funcționează ca o declarație de salt în Golang. Goto este folosit pentru a oferi un control de etichetă specificat asupra programului.
Poate fi folosit pentru a sări peste porțiuni de cod și pentru a merge direct la instrucțiunile necesare sau poate fi folosit pentru a repeta o porțiune de cod de program, dată fiind o anumită circumstanță.
25. În Golang, ce sunt Lvalue și Rvalue?
Lvalue:
- Face aluzie la un loc de memorie.
- Poate fi schimbat.
- Acesta denotă un identificator de variabilă.
- Poate apărea în stânga sau în dreapta operatorului =.
- În linia x =20, de exemplu, x este o valoare l și 20 este o valoare r.
Rvaloare:
- Semnifică o valoare fixă.
- Reprezintă o valoare a datelor stocate în memorie.
- Apare întotdeauna în partea dreaptă a operatorului =.
- Expresia 10 = 20 este incorectă, de exemplu, deoarece există o valoare r (10) la stânga operatorului =.
26. În Go, care sunt constructele bucle?
Există o singură componentă de buclă în Go: bucla for. Bucla for este alcătuită din trei părți care sunt separate prin punct și virgulă:
- Instrucțiunea Init este rulată înainte de începerea buclei. Este frecvent o declarație de variabilă care apare doar în domeniul buclei for.
- Înainte de fiecare iterație, instrucțiunea de condiție este evaluată ca boolean pentru a decide dacă bucla ar trebui să continue.
- Declarația post este rulată la încheierea fiecărei iterații.
27. Ce sunt exact modelele de design?
Modelele de design sunt bucăți de cod care pot fi reutilizate pentru a rezolva problemele comune ale software-ului. Dacă utilizați modele de design, proiectele dvs. vor genera software mai modular, scalabil și eficient. Modelele de design vă ajută să vă extindeți aplicațiile și să lucrați cu o echipă. Modelele obișnuite de design includ Metoda fabricii, Singleton, Fațadă și Decorator.
28. Care este cel mai bun pachet Golang pentru operațiuni simple cu fișiere? Ce pachete suplimentare Golang sunt folosite pentru manipularea fișierelor?
Interfața independentă de platformă este furnizată de pachetul de bibliotecă standard OS. Când interacționăm cu fișierele, le folosim pentru funcțiile sistemului. Interfața sistemului de operare este menită să fie consecventă în toate sistemele de operare.
Drept urmare, aplicațiile pe care le dezvoltăm rulează la fel pe Windows, Linux și Mac. Alte pachete standard de bibliotecă Go includ io, ioutil și bufio. Acestea funcționează cu fișiere și adaugă funcționalități. Cu toate acestea, acestea nu sunt necesare pentru operațiunile fundamentale cu fișierele. Avem nevoie doar de pachetul OS.
29. Dați o explicație despre Arhitectura orientată pe obiecte a lui Golang.
Golang nu folosește un design de obiect de clasă ca fiind convențional Programarea orientată pe obiecte face. Structurile complexe de date și comportamentul sunt în schimb stocate în structuri și metode.
O structură este doar o schemă cu un plan pentru datele pe care o structură le va transporta. Structurile pot fi folosite pentru a simboliza idei din lumea actuală, cum ar fi cărți, oameni sau automobile.
30. Ce tipuri de conversie acceptă Golang?
Când vine vorba de tastarea explicită, Go este foarte pretențios. Nicio conversie de tip nu se face automat. Pentru a desemna o variabilă de un tip la altul, conversia tipului trebuie făcută în mod explicit.
31. Descrieți scopul și funcționarea aserției tip.
În GO, conversia tipului este folosită pentru a transforma tipuri disparate. O valoare explicită a tipului specificat este extrasă dintr-o valoare de interfață printr-o afirmație de tip.
32. Ce este exact un tip struct?
O structură constă dintr-o listă de componente numite câmpuri. Există un fel și un nume pentru fiecare domeniu. O altă modalitate de a concepe o structură este ca un grup de proprietăți conectate. Sunt utile pentru combinarea datelor pentru a crea înregistrări.
33. Explicați matricea de suport a unei secțiuni.
Când construim o felie, Go produce o matrice secretă numită matrice de suport sau matrice subiacentă în spatele scenei, iar noul tip de felie se referă la acesta. Elementele, nu felia, sunt stocate în matricea de suport.
Slice-urile sunt implementate în Go ca structuri de date numite antete slice, care acționează ca reprezentare în timp de execuție a feliei.
34. Este necesar să existe atât variabile GOPATH, cât și GOROOT și, dacă da, de ce?
De obicei, niciunul nu este necesar. Singura variabilă care trebuie setată pentru a indica arborele sau arborele pachetului Go este GOPATH.
GOROOT se referă la rădăcina directorului principal pentru limbajul de programare Go, cu toate acestea, este aproape sigur deja setat la locația instalării curente Go.
Dacă există numeroase versiuni ale limbii Go pe același sistem sau dacă limba Go a fost descărcată ca pachet binar de pe internet sau mutată de pe o altă mașină, trebuie setată variabila GOROOT.
35. Golang permite moștenirea?
Moștenirea este o noțiune de bază în programarea orientată pe obiecte care se referă la transmiterea proprietăților superclasei către clasa de bază.
Deoarece Golang nu are clase, moștenirea se realizează folosind încorporarea structurilor și structurile nu pot fi extinse direct, trebuie să folosim ideea de compoziție pentru a crea obiecte noi cu structura.
36. În Golang, cum apare CGo?
Dintr-un fișier sursă Go cu caracteristici definite, cGo creează fișiere Go și C care pot fi concatenate într-un pachet Go unic. C se referă la un „pseudo-pachet”, care este o expresie diferită generată de cGo pentru a se referi la spațiul de nume al lui C.
37. Care este tipul de indicator în Golang?
Denumirile alfanumerice sau etichetele pentru anumite regiuni de memorie sunt cunoscute ca variabile. Un tip de variabilă cunoscut sub numele de pointer stochează adresa de memorie a unei alte variabile.
Adresa unei variabile este reprezentată printr-o valoare pointer sau nul dacă variabila nu a fost încă stabilită. Așa cum o variabilă reprezintă locația de memorie a unei valori, un pointer indică acea adresă.
Concluzie
Scopul limbajului de programare Golang a fost de a crea programe eficiente mai rapid. Companiile au început să utilizeze Golang pe măsură ce au început să-și dea seama de posibilitățile sale avantajoase.
Golang a fost extrem de eficient în a aprinde interesul dezvoltatorilor, în creșterea utilizării lor de bază și, în consecință, a oportunităților de angajare. Răspunsurile la întrebările menționate mai sus, care sunt cele mai frecvente adresate în timpul interviurilor Golang, vă pot ajuta să obțineți jobul Golang pe care îl căutați.
Vedea Seria de interviuri a lui Hashdork pentru ajutor la pregătirea interviului.
Lasă un comentariu