Turinys[Slėpti][Rodyti]
- 1. Apibūdinkite Golangą.
- 2. Kokie Go pranašumai prieš kitas kalbas?
- 3. Kas yra fmt Golango programavime?
- 4. Kas tiksliai yra „Go“ sąsajos?
- 5. Kas tiksliai yra styginiai literalai?
- 6. Kaip „Golang“ konfigūruojamos darbo aplinkos ir parametrai?
- 7. Apibūdinkite Golang paketus?
- 8. Kokius duomenų tipus palaiko Golang?
- 9. Ką reiškia statinis kintamojo tipo deklaravimas Golang?
- 10. Kas yra Golango dinaminio kintamojo deklaravimas?
- 11. Kaip galiu naudoti pasirinktinius paketus GO programavimo kalba?
- 12. Kas tiksliai yra gorutina? Kaip galite tai sustabdyti?
- 13. Apibūdinkite runą.
- 14. Kas yra Go idioma, reiškianti enumus?
- 15. Kaip kintamojo tipas tikrinamas vykdymo metu?
- 16. Apibūdinkite Go kanalus.
- 17. Paaiškinkite Golango metodus.
- 18. Kas tiksliai yra duomenų lenktynės?
- 19. Kas iš tikrųjų yra „Go“ šiukšlių rinkimas?
- 20. Apibūdinkite testavimo etapus naudojant Golang.
- 21. Kas tiksliai yra „Go“ skiltelės?
- 22. Kas tiksliai yra krūvos atmintis?
- 23. Kas tiksliai yra funkcijų uždarymai?
- 24. Ką reiškia Golango goto teiginys?
- 25. Kas Golange yra Lvalue ir Rvalue?
- 26. Kokios yra kilpos konstrukcijos programoje Go?
- 27. Kas tiksliai yra dizaino modeliai?
- 28. Koks yra geriausias Golang paketas paprastoms failų operacijoms atlikti? Kokie papildomi „Golang“ paketai naudojami failams valdyti?
- 29. Pateikite Golango objektinės architektūros paaiškinimą.
- 30. Kokius konversijų tipus palaiko Golang?
- 31. Apibūdinkite tipo tvirtinimo paskirtį ir veikimą.
- 32. Kas tiksliai yra struktūros tipas?
- 33. Paaiškinkite pjūvio reikšmės pagrindinį masyvą.
- 34. Ar būtina turėti ir GOPATH, ir GOROOT kintamuosius, ir jei taip, kodėl?
- 35. Ar Golangas įgalina paveldėjimą?
- 36. Kaip Golange pasirodo CGo?
- 37. Koks yra žymeklio tipas Golang?
- Išvada
Go programavimo kalba, dažnai žinoma kaip Golangas, yra atvirojo kodo programavimo kalba, kurią galima palyginti su C, bet skirta greitam kompiliavimui, sklandžiam vienu metu ir kūrėjo patogumui.
Šią kalbą sukūrė ir naudojo „Google“, tačiau pastaraisiais metais ji tapo populiari kitose įmonėse, nes išaugo lygiagrečio, tinklinio programavimo paklausa.
„Golang“ palengvina kūrimą kūrėjams, siūlydama optimalų kompiliavimą, kad būtų galima greitai kurti programinę įrangą, sklandžiau veikti vienu metu, pagerinti vykdymo laiką ir sumažinti defektų skaičių.
Golangas greitai tampa populiaria įmonių programavimo kalba, turinti keletą užimtumo galimybių. Daugelis IT didikų, tokių kaip „Google“, „Uber“ ir „Apple“, dievina „Golang“ dėl trumpesnio kūrimo laiko, lengvo mokymosi, pailginto veikimo laiko, šiukšlių surinkimo ir kitų privalumų.
Kadangi vis daugiau įmonių naudojasi „Golang“, Golang programuotojų poreikis auga. Esmė? Golango mokymasis suteiktų keletą įsidarbinimo perspektyvų.
Jei norite dirbti „Golang“ kūrėju, turite tinkamai pasiruošti pokalbiui. Štai kodėl mes sudarėme šią išsamią Golang interviu klausimų rinkinį.
Šiame įraše pateiksime pagrindinius ir išplėstinius Golang interviu klausimus, kad galėtumėte lengvai pereiti pokalbį.
1. Apibūdinkite Golangą.
Go yra aukšto lygio, bendros paskirties programavimo kalba kuris palaiko šiukšlių surinkimą ir lygiagretų programavimą ir yra labai sandariai ir statiškai įvestas. Go programos kuriamos naudojant paketus, kurie užtikrina efektyvų priklausomybės valdymą.
Be to, jis naudoja kompiliavimo nuorodos metodą, kad sukurtų vykdomuosius dvejetainius failus iš šaltinio kodo. Go yra paprasta kalba su gražiomis ir aiškiomis sintaksinėmis struktūromis.
Kartu pateikiamas tvirtų standartinių bibliotekų rinkinys, kurį kūrėjai gali naudoti norėdami išspręsti problemas, nereikalaujant kitų paketų.
2. Kokie Go pranašumai prieš kitas kalbas?
- „Go“ kodas buvo sukurtas atsižvelgiant į praktiškumą, priešingai nei kitomis kalbomis, kurios prasidėjo kaip intelektualūs eksperimentai. Kiekvienas sintaksės ir funkcijos pasirinkimas daromas atsižvelgiant į programuotojo patogumą.
- Kadangi automatinis šiukšlių surinkimas veikia kartu su programa, jis yra daug efektyvesnis nei „Java“ ar „Python“.
- „Golang“ pirmenybė teikiama mastelio keitimui ir lygiagretumui.
- Paprastai manoma, kad golangas yra suprantamesnis nei kitos kalbos, nes jis turi vieną standartizuotą kodo struktūrą.
3. Kas yra fmt Golango programavime?
Paketas Formatas žymimas simboliu fmt. Vartotojai gali naudoti šią funkciją norėdami suformatuoti pagrindinį tekstą, reikšmes ar bet ką kitą ir spausdinti.
Tai taip pat leidžia vartotojams gauti terminalo įvestį, rašyti į failą su rašytuvu ir netgi sukurti pagal užsakymą išgalvotus klaidų pranešimus. Šis paketas skirtas įvesties ir išvesties formatavimui.
4. Kas tiksliai yra „Go“ sąsajos?
„Go“ sąsajos skiriasi nuo sąsajų kitomis kalbomis. „Go“ sąsajos yra specialus tipas, naudojamas išreikšti vieno ar kelių metodų parašų rinkinį.
Sąsaja sudaroma naudojant terminą „tipas“, po kurio nurodomas pavadinimas ir raktinio žodžio sąsaja. Sąsajas galima apibrėžti taip:
- metodų rinkinys
- Tipas
5. Kas tiksliai yra styginiai literalai?
Eilutės literalas yra eilutės konstanta, gaunama sujungiant raides. Neapdoroti ir interpretuoti eilučių literalai yra dviejų tipų eilučių literalai. Neapdoroti eilučių literalai yra uždengti atgalinėmis varnelėmis (foo) ir juose yra neinterpretuotų UTF-8 simbolių.
Interpretuojami eilučių literalai yra eilutės, parašytos dvigubose kabutėse ir apimančios bet kokį simbolį, išskyrus naują eilutę ir nepilnas dvigubas kabutes.
6. Kaip „Golang“ konfigūruojamos darbo aplinkos ir parametrai?
Darbo aplinką ir nustatymus galima konfigūruoti naudojant JSON, kuris šiais laikais plačiai naudojamas. Tai, kad JSON yra įtrauktas į standartinę biblioteką, yra pagrindinis jos pranašumas.
Standartinė biblioteka numato rašymo būdus duomenų struktūra, todėl jis labai skaitomas. YAML paketas, skirtas Go, yra papildomas pasirinkimas.
7. Apibūdinkite Golang paketus?
Paketai yra aplankai, kuriuose yra kiti paketai ir jų šaltinio kodas „Go“ darbo srityje. Susieti paketai apima visą kodą, įskaitant kintamuosius, funkcijas ir tipus, įrašytus šaltinio failuose.
Kiekvienas šaltinio failas yra paketo dalis, o go paketai taip pat gali būti saugomi paketų viduje.
8. Kokius duomenų tipus palaiko Golang?
Golangas naudoja šiuos tipus:
- Siuntimas
- Būlio
- Skaitmeninis
- Styginių
- Rodyklė
- Funkcija
- Sąsaja
- Gabalas
- Struktūra
- Žemėlapis
- Kanalas
- Masyvas
9. Ką reiškia statinis kintamojo tipo deklaravimas Golang?
Kompiliatorius gali tęsti kitą kompiliaciją neturėdamas išsamios informacijos apie kintamąjį dėl statinio tipo kintamųjų deklaracijų, kurios įtikina, kad yra tik vienas kintamasis su nurodyta rūšimi ir pavadinimu.
Kintamojo deklaracija svarbi tik kompiliuojant; kompiliatorius jungiantis prie programos reikalauja tikro kintamojo ir deklaracijos.
10. Kas yra Golango dinaminio kintamojo deklaravimas?
Kompiliatorius turi paaiškinti kintamojo rūšį dinaminio tipo kintamųjų deklaracijoje, atsižvelgdamas į jam pervestą sumą. Kaip būtina sąlyga, kompiliatorius nereikalauja kintamojo, kad būtų galima suskirstyti statiškai į kategorijas.
11. Kaip galiu naudoti pasirinktinius paketus GO programavimo kalba?
Jei kuriate atskirą „go get -table“ projektą savo bibliotekai ir jis skirtas tik vidiniam naudojimui, galite parašyti tokį kodą.
- Įdėkite bibliotekos failų katalogą į savo projekto katalogą.
- Nurodykite biblioteką pagal jos kelią, palyginti su darbo srities, kurioje yra projektas, šaknis.
12. Kas tiksliai yra gorutina? Kaip galite tai sustabdyti?
Gorutina yra funkcija arba procedūra, kuri vykdoma kartu su kitomis gorutinomis tam skirtoje gorutinos gijoje. „Goroutine“ siūlai yra lengvesni nei įprasti siūlai, o dauguma „Golang“ programų vienu metu naudoja tūkstančius gorutinų.
Gorutiną galima sustabdyti perduodant ją signalo kanalu. „Goroutines“ gali reaguoti į signalus tik tada, kai jie yra nukreipti patikrinti, todėl įtraukite patikrinimus tinkamose vietose, pvz., „for“ ciklo viršuje.
13. Apibūdinkite runą.
„Go“ programoje runa yra įtaisytas tipas pavadinimu int32. „Unicode CodePoint“ veikia kaip „Go“ runa. Nesvarbu, kiek baitų užima kodo taškas, jis gali būti pavaizduotas rune.
Runos nebūtinai turi būti tvarkingos eilutėje. Nors galime konvertuoti tarp stygos ir runos, jos nėra vienodos.
14. Kas yra Go idioma, reiškianti enumus?
Golang programavimo kalba tiesiogiai nepalaiko enums. Iota ir konstantos gali būti naudojamos enums įgyvendinti. Išvardytam tipui įgyvendinti galima naudoti bet kurį iš šių metodų:
- įvedant naują sveikųjų skaičių tipą
- Jota naudojama jo vertei nurodyti.
- Suteikdami tipui String funkciją
15. Kaip kintamojo tipas tikrinamas vykdymo metu?
Tipo jungiklis yra efektyviausias būdas nustatyti kintamojo tipą realiuoju laiku. Naudojant tipo jungiklį, kintamieji vertinami pagal tipą, o ne pagal vertę.
Kiekviename jungiklyje yra numatytasis atvejis, kuris vykdomas, jei nė vienas atvejis nėra teisingas, ir bent vienas atvejis, kuris naudojamas kaip sąlyginis sakinys. Pavyzdžiui, galite sukurti tipo jungiklį, kuris nustato, ar sąsajos reikšmė, kurią įtraukiu, yra tipas int ar eilutė:
16. Apibūdinkite Go kanalus.
„Go“ kanalas leidžia perduoti duomenis ir perduoti tarp gorutinų. To paties tipo duomenys gali būti siunčiami vienu kanalu.
„Goroutines“ gali siųsti ir gauti duomenis tuo pačiu kanalu dėl kanalo dvikrypčio duomenų srauto.
17. Paaiškinkite Golango metodus.
Golangas neteikia klasių, bet palaiko metodus. Šie metodai yra identiški funkcijoms, išskyrus tai, kad Go metodai turi imtuvo parametrą.
Go metodas turi prieigą prie imtuvo atributų per imtuvo parametrus. Go metodai, dar žinomi kaip imtuvo funkcijos, padeda pateikti tikslesnę ir realesnę idėją.
18. Kas tiksliai yra duomenų lenktynės?
Dažniausias ir sudėtingiausias derinimas yra duomenų lenktynės. Nesinchronizuota prieiga prie bendros atminties arba kelių gorutinų vykdymas vienu metu be atskiro apdorojimo sukelia duomenų lenktynių gedimą.
19. Kas iš tikrųjų yra „Go“ šiukšlių rinkimas?
Šiukšlių surinkimas perkelia saugyklą, kuri buvo dinamiškai priskirta programai, kad ją naudotų kiti objektai. Šis žodis dažnai reiškia atliekų surinkėjo automatizuotą regeneravimą, skirtą įprastiniam saugojimui, o ne aiškų kodą (pateikiamą programuotojo), kad būtų išlaisvinti tam tikri atminties blokai.
Automatinis šiukšliadėžių rinkimas dažnai pradedamas, kai laisvos RAM kiekis nukrenta žemiau iš anksto nustatytos ribos arba po tam tikro paskirstymo skaičiaus.
Elementų, kurių programinė įranga nebereikia, kad atmintyje būtų sukurta vieta dinamiškesniems objektams, pašalinimas vadinamas „šiukšlių surinkimu“.
20. Apibūdinkite testavimo etapus naudojant Golang.
„Golang“ teikia automatinį paketų testavimą, naudodamas pasirinktinius testavimo rinkinius. Norėdami sukurti naują rinkinį, sukurkite failą, kuris baigiasi _test.go ir kuriame yra funkcija TestXxx, kur Xxx pakeičiamas bandomos funkcijos pavadinimu.
Pavyzdžiui, funkcija, kuri tikrina prisijungimo galimybes, būtų pavadinta TestLogin. Tada testavimo rinkinio failas įtraukiamas į tą patį paketą kaip ir bandomasis failas.
Bandomasis failas bus praleistas įprasto vykdymo metu, bet bus paleistas, kai įvesite komandą go test.
21. Kas tiksliai yra „Go“ skiltelės?
Pjūviai yra svarbus Go duomenų tipas, suteikiantis galingesnę sąsają sekoms nei masyvai. Skirtingai nei masyvai, skiltelės įvedamos tik atsižvelgiant į juose esančius elementus (ne elementų skaičių).
Norėdami sukurti tuščią pjūvį, kurio ilgis nėra nulis, naudokite integruotą raktinį žodį „padaryti“.
22. Kas tiksliai yra krūvos atmintis?
Dinamiškai suformuotus objektus ir kintamuosius saugome krūvos atmintyje. Kai nebenaudojame objekto, paprastai ištriname jo užimtą krūvos atmintį.
23. Kas tiksliai yra funkcijų uždarymai?
Funkcijų uždarymas yra funkcijos reikšmės tipas, sudarantis išorinių nuorodų kintamuosius. Funkcija turi prieigą prie nurodytų kintamųjų verčių ir jas valdyti.
Pavyzdžiui, sumatoriaus () grąžintas uždarymas yra susietas su skirtingu nurodytos sumos kintamuoju.
24. Ką reiškia Golango goto teiginys?
Golango teiginys goto veikia kaip šuolio sakinys. „Goto“ yra įpratęs teikti nurodytą programos etiketės valdymą.
Jis gali būti naudojamas norint praleisti kodo dalis ir pereiti tiesiai prie būtinų teiginių, arba jis gali būti naudojamas tam tikromis aplinkybėmis pakartoti programos kodo dalį.
25. Kas Golange yra Lvalue ir Rvalue?
Lvertė:
- Tai užsimena apie atminties vietą.
- Jį galima pakeisti.
- Tai žymi kintamojo identifikatorių.
- Tai gali atsirasti operatoriaus = kairėje arba dešinėje.
- Pavyzdžiui, eilutėje x =20 x yra lvalue, o 20 yra rreikšmė.
Rvalu:
- Tai reiškia fiksuotą vertę.
- Tai reiškia atmintyje saugomų duomenų reikšmę.
- Jis visada atsiranda dešinėje = operatoriaus pusėje.
- Pavyzdžiui, išraiška 10 = 20 yra neteisinga, nes operatoriaus = kairėje yra rreikšmė (10).
26. Kokios yra kilpos konstrukcijos programoje Go?
„Go“ yra tik vienas kilpinis komponentas: „for“ ciklas. For kilpa sudaryta iš trijų dalių, atskirtų kabliataškiais:
- „Init“ teiginys paleidžiamas prieš pradedant kilpą. Tai dažnai yra kintamojo deklaracija, kuri rodoma tik ciklo for srityje.
- Prieš kiekvieną iteraciją sąlygos sakinys įvertinamas kaip Būlio reikšmė, kad būtų nuspręsta, ar ciklas turėtų tęstis.
- Pranešimas paleidžiamas kiekvienos iteracijos pabaigoje.
27. Kas tiksliai yra dizaino modeliai?
Dizaino modeliai yra kodo gabalai, kuriuos galima pakartotinai naudoti sprendžiant įprastas programinės įrangos problemas. Jei naudosite dizaino modelius, jūsų projektai sukurs modulinę, keičiamo dydžio ir efektyvesnę programinę įrangą. Dizaino modeliai padeda išplėsti programas ir dirbti su komanda. Įprasti dizaino modeliai apima gamyklinį metodą, „Singleton“, fasadą ir dekoratorių.
28. Koks yra geriausias Golang paketas paprastoms failų operacijoms atlikti? Kokie papildomi „Golang“ paketai naudojami failams valdyti?
Nuo platformos nepriklausomą sąsają teikia standartinis OS bibliotekos paketas. Bendraudami su failais naudojame juos sistemos funkcijoms atlikti. OS sąsaja turi būti nuosekli visose operacinėse sistemose.
Todėl mūsų kuriamos programos veikia vienodai „Windows“, „Linux“ ir „Mac“. Kiti „Go“ standartiniai bibliotekos paketai apima „io“, „ioutil“ ir „bufio“. Jie veikia su failais ir prideda funkcijų. Tačiau jie nėra būtini pagrindinėms failų operacijoms. Mums reikia tik OS paketo.
29. Pateikite Golango objektinės architektūros paaiškinimą.
Golangas nenaudoja klasės objekto dizaino kaip įprasta Objektinis programavimas daro. Vietoj to, sudėtingos duomenų struktūros ir elgsena saugomos struktūrose ir metoduose.
Struktūra yra tik schema su duomenų, kuriuos struktūra turės, planu. Struktūros gali būti naudojamos simbolizuoti idėjas iš tikro pasaulio, pavyzdžiui, knygas, žmones ar automobilius.
30. Kokius konversijų tipus palaiko Golang?
Kalbant apie aiškų tekstą, Go yra labai išrankus. Joks tipo konvertavimas neatliekamas automatiškai. Norint priskirti vieno tipo kintamąjį į kitą, tipo konvertavimas turi būti atliktas aiškiai.
31. Apibūdinkite tipo tvirtinimo paskirtį ir veikimą.
GO tipo konvertavimas naudojamas skirtingiems tipams transformuoti. Nurodyto tipo aiški reikšmė išgaunama iš sąsajos vertės pagal tipo teiginį.
32. Kas tiksliai yra struktūros tipas?
Struktūrą sudaro įvardytų komponentų, vadinamų laukais, sąrašas. Kiekvienai sričiai yra pobūdis ir pavadinimas. Kitas būdas suvokti struktūrą yra sujungtų savybių grupė. Jie naudingi jungiant duomenis kuriant įrašus.
33. Paaiškinkite pjūvio reikšmės pagrindinį masyvą.
Kai sukuriame pjūvį, „Go“ sukuria slaptą masyvą, vadinamą „pagrindiniu“ arba „pagrindiniu“ masyvu užkulisiuose, o naujasis skilties tipo kintamasis nurodo į jį. Elementai, o ne dalis, saugomi pagrindiniame masyve.
Skiltys yra įdiegtos Go kaip duomenų struktūros, vadinamos pjūvio antraštėmis, kurios veikia kaip pjūvio vykdymo laikas.
34. Ar būtina turėti ir GOPATH, ir GOROOT kintamuosius, ir jei taip, kodėl?
Paprastai nereikia nei vieno, nei kito. Vienintelis kintamasis, kuris turi būti nustatytas, kad nukreiptų į „Go“ paketo medį ar medžius, yra GOPATH.
GOROOT reiškia Go programavimo kalbos pagrindinio katalogo šaknį, tačiau beveik neabejotinai ji jau nustatyta į dabartinės Go diegimo vietą.
Jei toje pačioje sistemoje yra daug „Go“ kalbos versijų arba jei „Go“ kalba buvo atsisiųsta kaip dvejetainis paketas iš interneto arba perkelta iš kito įrenginio, turi būti nustatytas GOROOT kintamasis.
35. Ar Golangas įgalina paveldėjimą?
Paveldėjimas yra pagrindinė objektinio programavimo sąvoka, nurodanti superklasės savybių perdavimą bazinei klasei.
Kadangi Golang trūksta klasių, paveldėjimas atliekamas naudojant struktūrų įterpimą ir struktūrų negalima tiesiogiai išplėsti, turime naudoti kompozicijos idėją, kad sukurtume naujus objektus su struktūra.
36. Kaip Golange pasirodo CGo?
Iš Go šaltinio failo su apibrėžtomis funkcijomis cGo sukuria Go ir C failus, kuriuos galima sujungti į unikalų Go paketą. C reiškia „pseudopaketą“, kuri yra kita frazė, kurią sugeneravo cGo, nurodant C vardų erdvę.
37. Koks yra žymeklio tipas Golang?
Raidiniai ir skaitmeniniai tam tikrų atminties sričių žymėjimai arba etiketės yra žinomi kaip kintamieji. Kintamojo tipas, žinomas kaip rodyklė, saugo kito kintamojo atminties adresą.
Kintamojo adresas nurodomas rodyklės reikšme arba nuliu, jei kintamasis dar nebuvo nustatytas. Lygiai taip pat, kaip kintamasis nurodo reikšmės atminties vietą, žymeklis nurodo tą adresą.
Išvada
Golang programavimo kalbos tikslas buvo greičiau sukurti efektyvias programas. Įmonės pradėjo naudoti „Golang“, kai pradėjo suvokti jo naudingas galimybes.
„Golang“ itin efektyviai sužadino kūrėjų susidomėjimą, padidino jų bazinį naudojimą ir, atitinkamai, darbo galimybes. Atsakymai į pirmiau minėtus klausimus, kurie dažniausiai užduodami per pokalbius su Golangu, gali padėti jums rasti Golango darbą, kurio ieškote.
Pamatyti Hašdorko interviu serija už pagalbą ruošiantis pokalbiui.
Palikti atsakymą