Sisukord[Peida][Näita]
- 1. Kirjeldage Golangi.
- 2. Millised on Go eelised teiste keelte ees?
- 3. Mis on Golangi programmeerimises fmt?
- 4. Mis täpselt on Go liidesed?
- 5. Mis täpselt on stringliteraalid?
- 6. Kuidas on Golangis konfigureeritud töökeskkondi ja parameetreid?
- 7. Kirjeldage Golangi pakette?
- 8. Milliseid andmetüüpe Golang toetab?
- 9. Mida sa mõtled Golangi muutuja staatilise tüübi deklaratsiooni all?
- 10. Mis on Golangis dünaamilise muutuja deklaratsioon?
- 11. Kuidas saan GO programmeerimiskeeles kohandatud pakette kasutada?
- 12. Mis täpselt on gorotiin? Kuidas saate sellele peatada?
- 13. Kirjelda ruuni.
- 14. Mis on Go idioom enumite tähistamiseks?
- 15. Kuidas kontrollitakse muutuja tüüpi käitusajal?
- 16. Kirjeldage Go kanaleid.
- 17. Selgitage Golangi meetodeid.
- 18. Mis täpselt on andmevõistlus?
- 19. Mis täpselt on Go prügivedu?
- 20. Kirjeldage Golangi abil testimise etappe.
- 21. Mis on Go-s viilud?
- 22. Mis täpselt on kuhjamälu?
- 23. Mis täpselt on funktsioonide sulgemised?
- 24. Mida tähendab Golangi goto avaldus?
- 25. Mis on Golangis Lvalue ja Rvalue?
- 26. Millised on Go-s silmuskonstruktsioonid?
- 27. Mis täpselt on disainimustrid?
- 28. Mis on parim Golangi pakett lihtsate failioperatsioonide jaoks? Milliseid täiendavaid Golangi pakette failidega manipuleerimiseks kasutatakse?
- 29. Selgitage Golangi objektorienteeritud arhitektuuri.
- 30. Milliseid konversioonitüüpe Golang toetab?
- 31. Kirjeldage tüübiväite eesmärki ja toimimist.
- 32. Mis täpselt on struktuuritüüp?
- 33. Selgitage lõigu väärtuse tugimassiivi.
- 34. Kas on vaja nii GOPATH kui GOROOT muutujaid ja kui jah, siis miks?
- 35. Kas Golang võimaldab pärimist?
- 36. Kuidas CGo Golangis ilmub?
- 37. Mis on osuti tüüp Golangis?
- Järeldus
Go programmeerimiskeel, mida sageli tuntakse kui Golang, on avatud lähtekoodiga programmeerimiskeel, mis on võrreldav C-ga, kuid on loodud kiireks kompileerimiseks, sujuvaks samaaegsuseks ja arendaja mugavuseks.
Selle keele töötas välja ja kasutas Google, kuid see on viimastel aastatel teistes ettevõtetes tuntust kogunud, kuna nõudlus samaaegse võrgustatud programmeerimise järele on kasvanud.
Golang muudab arenduse arendajatele lihtsamaks, pakkudes optimaalset kompileerimist tarkvararakenduste kiireks arendamiseks, sujuvamaks samaaegsuseks, täiustatud käitusaja efektiivsuseks ja vähemate defektide arvuks.
Golang on kiiresti muutumas populaarseks ettevõtte programmeerimiskeeleks, millel on mitu töövõimalust. Paljud IT-mehed, nagu Google, Uber ja Apple, jumaldavad Golangi lühema arendusaja, õppimise lihtsuse, täiustatud käitusaja, prügikogumise ja muude eeliste pärast.
Kuna rohkem ettevõtteid kasutab Golangi, kasvab vajadus Golangi programmeerijate järele. Alumine rida? Golangi õppimine annaks mitmeid töövõimalusi.
Kui soovite töötada Golangi arendajana, peate oma intervjuuks piisavalt valmistuma. Seetõttu koostasime selle põhjaliku Golangi intervjuu küsimuste kogu.
Selles postituses esitame Golangi intervjuu põhiküsimused ja täpsemad küsimused, et saaksite intervjuu hõlpsalt läbida.
1. Kirjeldage Golangi.
Go on kõrgetasemeline, üldotstarbeline programmeerimiskeel mis toetab prügikoristust ja samaaegset programmeerimist ning on väga tihedalt ja staatiliselt trükitud. Go rakendused luuakse pakettide abil, mis pakuvad tõhusat sõltuvushaldust.
Lisaks kasutab see ära kompileerimislingi lähenemisviisi, et luua lähtekoodist käivitatavaid binaarfaile. Go on otsekohene keel ilusate ja selgete süntaktiliste struktuuridega.
Sellega on kaasas tugevate standardsete teekide komplekt, mida arendajad saavad kasutada probleemide lahendamiseks, ilma et oleks vaja muid pakette.
2. Millised on Go eelised teiste keelte ees?
- Go kood töötati välja praktilisust silmas pidades, erinevalt teistest keeltest, mis said alguse intellektuaalsete katsetena. Iga süntaksi ja funktsiooni valik on tehtud programmeerija mugavust silmas pidades.
- Kuna automaatne prügikoristus töötab rakendusega samaaegselt, on see palju tõhusam kui Java või Python.
- Skaleeritavus ja samaaegsus on Golangis prioriteediks.
- Golangi peetakse tavaliselt teistest keeltest arusaadavamaks, kuna sellel on üks standardiseeritud koodistruktuur.
3. Mis on Golangi programmeerimises fmt?
Pakett Format on tähistatud sümboliga fmt. Kasutajad saavad seda funktsiooni kasutada põhiteksti, väärtuste või muu vormindamiseks ja selle printimiseks.
Samuti võimaldab see kasutajatel vastu võtta terminalisisendit, kirjutada kirjutiga faili ja isegi koostada eritellimusel väljamõeldud veateateid. See pakett puudutab sisendi ja väljundi vormindamist.
4. Mis täpselt on Go liidesed?
Go liidesed erinevad teiste keelte omadest. Go liidesed on eritüüp, mida kasutatakse ühe või mitme meetodi allkirjade kogumi väljendamiseks.
Liidese moodustamiseks kasutatakse terminit "tüüp", millele järgneb nimi ja märksõna liides. Liidesed saab määratleda järgmiselt:
- meetodite kogum
- KASUTUSALA
5. Mis täpselt on stringliteraalid?
Stringi literaal on stringikonstant, mis saadakse tähtede ühendamisel. Toores ja tõlgendatud stringiliteraalid on stringiliteraalide kahte tüüpi. Töötlemata stringi literaalid on ümbritsetud tagumiste märkidega (foo) ja sisaldavad tõlgendamata UTF-8 märke.
Tõlgendatud stringiliteraalid on topeltjutumärkides kirjutatud stringid, mis sisaldavad kõiki märke, välja arvatud reavahetus ja mittetäielikud topeltjutumärgid.
6. Kuidas on Golangis konfigureeritud töökeskkondi ja parameetreid?
Töökeskkondi ja sätteid saab konfigureerida tänapäeval laialdaselt kasutatava JSON-i abil. Asjaolu, et JSON on lisatud standardsesse teeki, on selle peamine eelis.
Standardne raamatukogu pakub kirjutamismeetodeid ettenähtud jaoks andmete struktuur, mis teeb selle väga loetavaks. YAML-i pakett Go jaoks on lisavalik.
7. Kirjeldage Golangi pakette?
Paketid on kaustad, mis sisaldavad muid pakette ja nende lähtekoodi tööruumis Go. Lingitud paketid sisaldavad kogu koodi, sealhulgas muutujaid, funktsioone ja tüüpe, mis on kirjutatud lähtefailidesse.
Iga lähtefail on paketi osa ja go pakette saab salvestada ka pakettide sees.
8. Milliseid andmetüüpe Golang toetab?
Golang kasutab järgmisi tüüpe:
- Meetod
- Boolean
- Arv-
- nöör
- Pointer
- funktsioon
- Interface
- Viil
- Struktuur
- kaart
- Kanal
- Array
9. Mida sa mõtled Golangi muutuja staatilise tüübi deklaratsiooni all?
Kompilaator saab jätkata teise kompilatsiooniga, ilma et oleks vaja muutuja kohta kõikehõlmavat teavet, tänu staatilist tüüpi muutujate deklaratsioonidele, mis kinnitavad, et antud tüüpi ja nimega muutujaid on ainult üks.
Muutuja deklaratsioon on oluline ainult koostamise ajal; kompilaator nõuab rakendusega ühenduse loomisel reaalset muutujat ja deklaratsiooni.
10. Mis on Golangis dünaamilise muutuja deklaratsioon?
Koostaja peab selgitama, millist tüüpi muutuja dünaamilises muutuja deklaratsioonis on, lähtudes sellele ülekantud summast. Nõutava tingimusena ei nõua kompilaator staatiliseks kategoriseerimiseks muutujat.
11. Kuidas saan GO programmeerimiskeeles kohandatud pakette kasutada?
Kui loote oma teegi jaoks eraldi go get -tabeli projekti ja see on mõeldud ainult sisekasutuseks, saate kirjutada sellise koodi.
- Asetage raamatukogu failide kataloog oma projekti kataloogi alla.
- Viidake teegile selle tee järgi, mis on seotud projekti sisaldava tööruumi juurega.
12. Mis täpselt on gorotiin? Kuidas saate sellele peatada?
Gorutine on funktsioon või protseduur, mis töötab samaaegselt teiste gorutiinidega spetsiaalses gorutiinlõimes. Gorutine'i niidid on kergemad kui tavalised niidid ja enamik Golangi rakendusi kasutab samaaegselt tuhandeid gorutiine.
Gorutiini saab peatada, edastades selle signaalikanalile. Gorutiinid saavad signaalidele reageerida ainult siis, kui need on kontrollimiseks suunatud, seetõttu kontrollige neid mõistlikes kohtades, näiteks for-tsükli ülaosas.
13. Kirjelda ruuni.
Go-s on ruun sisseehitatud tüüp nimega int32. Unicode CodePoint toimib Go ruunina. Ükskõik kui palju baite koodipunkt võtab, saab seda esitada ruunina.
Ruunid ei pea olema stringis korras. Kuigi me saame teisendada stringi ja ruuni vahel, pole need samad.
14. Mis on Go idioom enumite tähistamiseks?
Golangi programmeerimiskeel ei toeta otseselt enumeid. Enumite rakendamiseks saab kasutada Iota ja konstante. Loetletud tüübi rakendamiseks saab kasutada mis tahes järgmisi lähenemisviise:
- tutvustame värsket täisarvu tüüpi
- Iota kasutatakse selle väärtuse näitamiseks.
- Varustades tüübile funktsiooni String
15. Kuidas kontrollitakse muutuja tüüpi käitusajal?
Tüübilüliti on kõige tõhusam viis muutuja tüübi reaalajas määramiseks. Tüübilüliti kasutamisel hinnatakse muutujaid tüübi, mitte väärtuse järgi.
Igas lülitis on nii vaikejuhtum, mis käivitatakse, kui ükski juhtudest pole tõene, ja vähemalt üks juhtum, mis toimib tingimuslausena. Näiteks saate kujundada tüübilüliti, mis määrab, kas liidese väärtus, mille ma kaasan, on tüüp int või string:
16. Kirjeldage Go kanaleid.
Go kanal võimaldab andmeedastust ja edastust gorutiinide vahel. Sama tüüpi andmeid saab saata ühe kanali kaudu.
Goroutines saavad kanali kahesuunalise andmevoo tõttu andmeid sama kanali kaudu saata ja vastu võtta.
17. Selgitage Golangi meetodeid.
Golang ei paku klasse, kuid toetab meetodeid. Need meetodid on funktsioonidega identsed, välja arvatud see, et Go-meetoditel on vastuvõtja parameeter.
Go meetodil on vastuvõtja parameetrite kaudu juurdepääs vastuvõtja atribuutidele. Go meetodid, mida tuntakse ka vastuvõtja funktsioonidena, aitavad esitada täpsemat ja reaalset ideed.
18. Mis täpselt on andmevõistlus?
Kõige tavalisem ja keerulisem silumine on andmevõistlus. Sünkroniseerimata juurdepääs jagatud mälule või mitme gorutiini samaaegne täitmine ilma eraldi käsitlemiseta põhjustab andmejooksu tõrke.
19. Mis täpselt on Go prügivedu?
Prügikoristus kasutab programmile dünaamiliselt määratud salvestusruumi muude objektide kasutamiseks. See sõna viitab sageli jäätmekoguja automaatsele regenereerimisele tavapäraseks salvestamiseks, mitte konkreetsete mäluplokkide vabastamiseks selgesõnalisele koodile (mille tarnib programmeerija).
Automaatne prügikasti kogumine algab sageli siis, kui vaba RAM-i kogus langeb alla etteantud läve või pärast määratud arvu eraldamist.
Nende üksuste eemaldamist, mida tarkvara enam dünaamilisemate objektide jaoks mälus koha loomiseks ei vaja, nimetatakse "prügikogumiseks".
20. Kirjeldage Golangi abil testimise etappe.
Golang pakub pakettide automatiseeritud testimist kohandatud testimiskomplektide abil. Uue komplekti loomiseks looge fail, mis lõpeb _test.go-ga ja sisaldab funktsiooni TestXxx, kus Xxx asendatakse testitava funktsiooni nimega.
Funktsioon, mis testib näiteks sisselogimisvõimalusi, kannab nime TestLogin. Testimiskomplekti fail lisatakse seejärel testitava failiga samasse paketti.
Testfail jäetakse tavalise täitmise ajal vahele, kuid see käivitatakse, kui sisestate käsu go test.
21. Mis on Go-s viilud?
Lõigud on oluline Go andmetüüp, mis pakub järjestuste jaoks võimsamat liidest kui massiivid. Erinevalt massiividest sisestatakse lõigud ainult sõltuvalt neis sisalduvatest elementidest (mitte elementide arvust).
Kui soovite luua tühja lõigu pikkusega, mis ei ole null, kasutage sisseehitatud märksõna "make".
22. Mis täpselt on kuhjamälu?
Dünaamiliselt moodustatud objektid ja muutujad salvestame kuhja mällu. Kui me objekti enam ei kasuta, kustutame tavaliselt selle hõivatud mälumälu.
23. Mis täpselt on funktsioonide sulgemised?
Funktsioonide sulgemised on teatud tüüpi funktsiooni väärtused, mis moodustavad väliselt viidatud muutujaid. Funktsioonil on juurdepääs viidatud muutujate väärtustele ja kontroll nende üle.
Näitena on adder() tagastatud sulgemine seotud erineva viidatud summa muutujaga.
24. Mida tähendab Golangi goto avaldus?
Goto-lause toimib Golangis hüppelausena. Goto on harjunud pakkuma programmile määratud sildi juhtimist.
Seda saab kasutada koodiosade vahelejätmiseks ja vajalike avalduste juurde liikumiseks või teatud asjaolude korral programmi koodi osa kordamiseks.
25. Mis on Golangis Lvalue ja Rvalue?
Lvalue:
- See vihjab mälupaigale.
- Seda saab muuta.
- See tähistab muutuja identifikaatorit.
- See võib esineda operaatori = vasakul või paremal pool.
- Näiteks real x =20 on x väärtus ja 20 on rväärtus.
Rvalue:
- See tähistab fikseeritud väärtust.
- See tähistab mällu salvestatud andmete väärtust.
- See esineb alati = operaatori paremal küljel.
- Avaldis 10 = 20 on vale näiteks seetõttu, et = operaatorist vasakul on rväärtus (10).
26. Millised on Go-s silmuskonstruktsioonid?
Go-s on ainult üks silmuskomponent: for-silmus. For-silmus koosneb kolmest semikoolonitega eraldatud osast:
- Init-lause käivitatakse enne tsükli algust. Sageli on see muutuja deklaratsioon, mis ilmub ainult for-tsükli ulatuses.
- Enne iga iteratsiooni hinnatakse tingimuslauset tõeväärtusena, et otsustada, kas tsükkel peaks jätkuma.
- Postitusavaldus käivitatakse iga iteratsiooni lõpus.
27. Mis täpselt on disainimustrid?
Kujundusmustrid on kooditükid, mida saab tavaliste tarkvaraprobleemide lahendamiseks uuesti kasutada. Kui kasutate disainimustreid, loovad teie projektid modulaarsema, skaleeritavama ja tõhusama tarkvara. Kujundusmustrid aitavad teil rakendusi laiendada ja meeskonnaga koostööd teha. Levinud disainimustrite hulka kuuluvad tehase meetod, Singleton, Fassaad ja Dekoraator.
28. Mis on parim Golangi pakett lihtsate failioperatsioonide jaoks? Milliseid täiendavaid Golangi pakette failidega manipuleerimiseks kasutatakse?
Platvormist sõltumatu liidese pakub OS-i standardne teegipakett. Failidega suhtlemisel kasutame neid süsteemi funktsioonide jaoks. Operatsioonisüsteemi liides on mõeldud kõigi operatsioonisüsteemide jaoks ühtseks.
Selle tulemusena töötavad meie arendatavad rakendused Windowsis, Linuxis ja Macis sama. Muud Go standardsed teegipaketid hõlmavad io, ioutil ja bufio. Need töötavad failidega ja lisavad funktsioone. Põhiliste failitoimingute jaoks pole need aga vajalikud. Vajame ainult OS-i paketti.
29. Selgitage Golangi objektorienteeritud arhitektuuri.
Golang ei kasuta klassiobjekti kujundust nagu tavapärane Objektorienteeritud programmeerimine teeb. Selle asemel salvestatakse keerukad andmestruktuurid ja -käitumine struktuuridesse ja meetoditesse.
Struktuur on lihtsalt skeem koos andmete plaaniga, mida struktuur kannab. Struktuure saab kasutada tegelikust maailmast pärit ideede (nt raamatud, inimesed või autod) sümboliseerimiseks.
30. Milliseid konversioonitüüpe Golang toetab?
Kui tegemist on selgesõnalise tippimisega, on Go väga valiv. Tüübi teisendust ei tehta automaatselt. Üht tüüpi muutuja teiseks määramiseks tuleb tüübi teisendamine teha selgesõnaliselt.
31. Kirjeldage tüübiväite eesmärki ja toimimist.
GO-s kasutatakse tüübiteisendust erinevate tüüpide teisendamiseks. Määratud tüüpi selgesõnaline väärtus ekstraheeritakse liidese väärtusest tüübiväite abil.
32. Mis täpselt on struktuuritüüp?
Struktuur koosneb nimeliste komponentide loendist, mida nimetatakse väljadeks. Igal valdkonnal on oma liik ja nimi. Teine võimalus struktuuri kujutamiseks on ühendatud omaduste rühmana. Need on abiks andmete kombineerimisel kirjete loomiseks.
33. Selgitage lõigu väärtuse tugimassiivi.
Kui loome lõigu, loob Go kulisside taga salamassiivi, mida nimetatakse tugi- või alusmassiiviks, ja uus lõigu tüüpi muutuja viitab sellele. Üksused, mitte viil, salvestatakse tugimassiivi.
Lõigud on Go-s rakendatud andmestruktuuridena, mida nimetatakse lõigupäisteks ja mis toimivad lõigu käitusaegse esitusena.
34. Kas on vaja nii GOPATH kui GOROOT muutujaid ja kui jah, siis miks?
Tavaliselt pole kumbki vajalik. Ainus muutuja, mis tuleb määrata, et osutada Go paketipuule või -puudele, on GOPATH.
GOROOT viitab Go programmeerimiskeele kodukataloogi juurtele, kuid peaaegu kindlasti on see juba seatud praeguse Go installi asukohale.
Kui samas süsteemis on mitu Go keeleversiooni või kui Go keel laaditi alla binaarpaketina Internetist või teisaldati teisest masinast, tuleb määrata muutuja GOROOT.
35. Kas Golang võimaldab pärimist?
Pärand on objektorienteeritud programmeerimise põhimõiste, mis viitab ülemklassi omaduste edasiandmisele baasklassile.
Kuna Golangil puuduvad klassid, pärimine toimub struktuuride manustamise abil ja struktuure ei saa otseselt laiendada, peame kasutama kompositsiooni ideed, et luua struktuuriga uusi objekte.
36. Kuidas CGo Golangis ilmub?
Määratud funktsioonidega Go lähtefailist loob cGo Go- ja C-failid, mida saab ühendada ainulaadseks Go-paketiks. C viitab "pseudopaketile", mis on erinev fraas, mille cGo genereerib C nimeruumi viitamiseks.
37. Mis on osuti tüüp Golangis?
Teatud mälupiirkondade tähtnumbrilisi tähiseid või silte nimetatakse muutujateks. Muutujate tüüp, mida nimetatakse osutiks, salvestab teise muutuja mäluaadressi.
Muutuja aadressi tähistab osuti väärtus või null, kui muutujat pole veel kindlaks tehtud. Nii nagu muutuja tähistab väärtuse mälukohta, osutab kursor sellele aadressile.
Järeldus
Golangi programmeerimiskeele eesmärk oli luua tõhusaid programme kiiremini. Ettevõtted hakkasid Golangi kasutama, kui nad hakkasid mõistma selle kasulikke võimalusi.
Golang on olnud äärmiselt tõhus arendajate huvi äratamisel, nende baaskasutuse ja sellest tulenevalt töövõimaluste suurendamisel. Vastused eelnimetatud küsimustele, mida Golangi intervjuude ajal kõige sagedamini küsitakse, aitavad teil leida Golangi töökoha, mida otsite.
nägema Hashdorki intervjuude sari abi saamiseks intervjuu ettevalmistamisel.
Jäta vastus