Sadržaj[Sakrij][Prikaži]
- 1. Opišite Golang.
- 2. Koje prednosti Go ima u odnosu na druge jezike?
- 3. U Golang programiranju, šta je fmt?
- 4. Šta su zapravo Go Interfaces?
- 5. Šta su zapravo string literali?
- 6. Kako su radna okruženja i parametri konfigurisani u Golangu?
- 7. Opišite Golang pakete?
- 8. Koje tipove podataka podržava Golang?
- 9. Šta mislite pod statičkom deklaracijom tipa varijable u Golangu?
- 10. U Golangu, što je deklaracija dinamičke varijable?
- 11. Kako mogu koristiti prilagođene pakete u GO programskom jeziku?
- 12. Šta je zapravo goroutine? Kako to možete zaustaviti?
- 13. Opišite runu.
- 14. Šta je Go idiom za predstavljanje enuma?
- 15. Kako se tip varijable provjerava u vrijeme izvođenja?
- 16. Opišite Go kanale.
- 17. Objasnite Golang metode.
- 18. Šta je zapravo trka podataka?
- 19. Šta je zapravo Go sakupljanje smeća?
- 20. Opišite faze testiranja koristeći Golang.
- 21. Šta su zapravo kriške u Go?
- 22. Šta je zapravo hrpa memorija?
- 23. Šta su zapravo zatvaranja funkcija?
- 24. Šta znači Golangova izjava Goto?
- 25. Šta su Lvalue i Rvalue u Golangu?
- 26. Koje su konstrukcije petlje u Go-u?
- 27. Šta su zapravo obrasci dizajna?
- 28. Koji je najbolji Golang paket za jednostavne operacije sa datotekama? Koji se dodatni Golang paketi koriste za manipulaciju datotekama?
- 29. Dajte objašnjenje Golangove objektno orijentirane arhitekture.
- 30. Koje vrste konverzije Golang podržava?
- 31. Opišite svrhu i rad tvrdnje tipa.
- 32. Šta je zapravo tip strukture?
- 33. Objasnite pozadinski niz vrijednosti slice.
- 34. Da li je potrebno imati i GOPATH i GOROOT varijable, i ako jeste, zašto?
- 35. Da li Golang omogućava nasljeđivanje?
- 36. Kako se CGo pojavljuje u Golangu?
- 37. Koji je tip pokazivača u Golangu?
- zaključak
Programski jezik Go, često poznat kao Golang, je programski jezik otvorenog koda koji je uporediv sa C, ali je dizajniran za brzu kompilaciju, glatku konkurentnost i pogodnost za programere.
Ovaj jezik je razvio i koristio Google, ali je postao popularan u drugim kompanijama poslednjih godina kako je rasla potražnja za istovremenim, umreženim programiranjem.
Golang olakšava razvoj programerima nudeći optimalnu kompilaciju za brzi razvoj softverskih aplikacija, glatkiju konkurentnost, poboljšanu efikasnost vremena rada i manje kvarova.
Golang brzo postaje popularan korporativni programski jezik, s nekoliko mogućnosti zapošljavanja. Mnogi IT velikani, poput Googlea, Ubera i Applea, obožavaju Golang zbog kraćeg vremena razvoja, lakoće učenja, poboljšanog vremena rada, sakupljanja smeća i drugih prednosti.
Kako sve više firmi koristi Golang, potreba za Golang programerima raste. Zaključak? Učenje Golanga bi pružilo nekoliko mogućnosti za zapošljavanje.
Ako želite raditi kao Golang programer, morate se adekvatno pripremiti za intervju. Zato smo sastavili ovu opsežnu kolekciju pitanja za Golang intervju.
U ovom postu ćemo vam predstaviti osnovna do napredna pitanja za Golang intervju, tako da možete lako proći kroz intervju.
1. Opišite Golang.
Go je na visokom nivou, opće namjene programski jezik koji podržava sakupljanje smeća i istovremeno programiranje i vrlo je čvrsto i statički tipiziran. Go aplikacije se kreiraju korišćenjem paketa, koji obezbeđuju efikasno upravljanje zavisnostima.
Osim toga, koristi se pristupom povezivanja kompajliranja za kreiranje izvršnih binarnih datoteka iz izvornog koda. Go je jednostavan jezik sa lijepim i jasnim sintaksičkim strukturama.
Dolazi sa skupom jakih standardnih biblioteka koje programeri mogu koristiti za rješavanje problema bez potrebe za drugim paketima.
2. Koje prednosti Go ima u odnosu na druge jezike?
- Go kod je razvijen imajući na umu praktičnost, za razliku od drugih jezika koji su počeli kao intelektualni eksperimenti. Svaki izbor u sintaksi i karakteristikama napravljen je imajući na umu pogodnost programera.
- Budući da automatsko sakupljanje smeća radi istovremeno sa aplikacijom, daleko je efikasnije od Jave ili Pythona.
- Skalabilnost i konkurentnost imaju prioritet u Golangu.
- Golang se obično smatra razumljivijim od drugih jezika jer ima jedinstvenu, standardiziranu strukturu koda.
3. U Golang programiranju, šta je fmt?
Format paket je označen simbolom fmt. Korisnici mogu koristiti ovu funkciju za formatiranje osnovnog teksta, vrijednosti ili bilo čega drugog i štampanje.
Takođe omogućava korisnicima da primaju ulazne podatke sa terminala, pišu u datoteku sa programom za pisanje, pa čak i da naprave prilagođene poruke o greškama. Ovaj paket je sve o formatiranju ulaza i izlaza.
4. Šta su zapravo Go Interfaces?
Interfejsi u Go-u se razlikuju od onih na drugim jezicima. Go Interfejsi su poseban tip koji se koristi za izražavanje kolekcije jednog ili više potpisa metoda.
Interfejs je formiran korišćenjem termina "tip", praćenog imenom i ključnom rečju interfejs. Interfejsi se mogu definirati na sljedeći način:
- zbirka metoda
- tip
5. Šta su zapravo string literali?
Literal stringa je konstanta niza proizvedena spajanjem slova. Sirovi i interpretirani string literali su dvije vrste string literala. Neobrađeni literali stringova su zatvoreni kvačicama (foo) i sadrže neinterpretirane UTF-8 znakove.
Interpretirani literali stringova su nizovi napisani unutar dvostrukih navodnika i uključujući bilo koji znak osim novog reda i nepotpunih dvostrukih navodnika.
6. Kako su radna okruženja i parametri konfigurisani u Golangu?
Radna okruženja i postavke mogu se konfigurirati pomoću JSON-a, koji se danas široko koristi. Činjenica da je JSON uključen u standardnu biblioteku je njegova glavna prednost.
Standardna biblioteka pruža metode pisanja za predviđene struktura podataka, što ga čini vrlo čitljivim. YAML paket za Go je dodatni izbor.
7. Opišite Golang pakete?
Paketi su fascikle u kojima se nalaze drugi paketi i njihov izvorni kod u Go radnom prostoru. Povezani paketi uključuju sav kod, uključujući varijable, funkcije i tipove, koji su napisani u izvornim datotekama.
Svaki izvorni fajl je dio paketa, a go paketi mogu biti pohranjeni i unutar paketa.
8. Koje tipove podataka podržava Golang?
Golang koristi sljedeće vrste:
- način
- Boolean
- Numerički
- niz
- Pointer
- funkcija
- Interface
- Rezina
- Struktura
- karta
- kanal
- mnoštvo
9. Šta mislite pod statičkom deklaracijom tipa varijable u Golangu?
Kompajler može da nastavi sa drugom kompilacijom bez potrebe da ima sveobuhvatne informacije o promenljivoj zahvaljujući deklaracijama statičkih varijabli, koje ga uveravaju da postoji samo jedna varijabla sa datom vrstom i imenom.
Deklaracija varijable je važna samo tokom kompilacije; kompajler zahteva stvarnu varijablu i deklaraciju kada se povezuje sa aplikacijom.
10. U Golangu, što je deklaracija dinamičke varijable?
Kompajler mora objasniti vrstu varijable u dinamičkom tipu deklaracije varijable na osnovu iznosa koji je prenesen na nju. Kao obavezan uslov, kompajleru nije potrebna varijabla za statičku kategorizaciju.
11. Kako mogu koristiti prilagođene pakete u GO programskom jeziku?
Ako kreirate poseban go get -table projekat za svoju biblioteku i on je samo za internu upotrebu, možete napisati ovakav kod.
- Postavite direktorij datoteka biblioteke u direktorij vašeg projekta.
- Uputite se na biblioteku po njenoj putanji u odnosu na korijen radnog prostora koji sadrži projekt.
12. Šta je zapravo goroutine? Kako to možete zaustaviti?
Goroutine je funkcija ili procedura koja se izvodi istovremeno s drugim goroutine na namjenskoj niti goroutine. Niti goroutine su lakši od običnih niti, a većina Golang aplikacija koristi hiljade goroutine istovremeno.
Gorutina se može zaustaviti propuštanjem signalnog kanala. Gorutine mogu odgovoriti na signale samo ako su upućene na provjeru, stoga uključite provjere na razumnim mjestima kao što je vrh vaše for petlje.
13. Opišite runu.
U Go, runa je ugrađeni tip sa imenom int32. Unicode CodePoint služi kao runa u Go. Bez obzira koliko bajtova kodna tačka zauzima, može se predstaviti runom.
Rune ne moraju biti u redu u nizu. Iako možemo konvertirati između niza i rune, oni nisu isti.
14. Šta je Go idiom za predstavljanje enuma?
Programski jezik Golang ne podržava direktno enume. Jota i konstante se mogu koristiti za implementaciju enuma. Za implementaciju nabrojanog tipa može se koristiti bilo koji od sljedećih pristupa:
- uvođenje svježeg cjelobrojnog tipa
- Iota se koristi za označavanje njegove vrijednosti.
- Pružanjem funkcije String tipu
15. Kako se tip varijable provjerava u vrijeme izvođenja?
Prekidač tipa je najefikasniji pristup za određivanje tipa varijable u realnom vremenu. Promjenljive se procjenjuju po tipu, a ne po vrijednosti kada se koristi Tip Switch.
I podrazumevani slučaj, koji se izvršava ako nijedan slučaj nije istinit, i najmanje jedan slučaj, koji služi kao uslovni iskaz, prisutni su u svakom Switchu. Možete, na primjer, dizajnirati prekidač tipa koji određuje da li je vrijednost interfejsa koju uključujem tip int ili string:
16. Opišite Go kanale.
Go kanal omogućava prijenos podataka i prijenos između gorrutina. Podaci istog tipa mogu se slati preko jednog kanala.
Gorutine mogu slati i primati podatke preko istog kanala zbog dvosmjernog toka podataka kanala.
17. Objasnite Golang metode.
Golang ne pruža klase, ali podržava metode. Ove metode su identične funkcijama, s izuzetkom što metode Go imaju parametar prijemnika.
Metoda Go ima pristup atributima primatelja preko parametara prijemnika. Go metode, poznate i kao funkcije prijemnika, pomažu u prezentaciji preciznije i stvarnije ideje.
18. Šta je zapravo trka podataka?
Najčešći i najteži otklanjanje grešaka je trka podataka. Nesinhronizovan pristup deljenoj memoriji ili izvršavanje nekoliko gorprograma u isto vreme bez odvojenog rukovanja rezultira greškom trke podataka.
19. Šta je zapravo Go sakupljanje smeća?
Sakupljanje smeća prenamjenjuje skladište koje je dinamički dodijeljeno programu za korištenje od strane drugih objekata. Riječ se često odnosi na automatiziranu regeneraciju sakupljača otpada za rutinsko skladištenje, a ne na eksplicitni kod (koji daje programer) za oslobađanje određenih memorijskih blokova.
Automatsko sakupljanje smeća često počinje kada količina slobodne RAM memorije padne ispod unapred definisanog praga ili nakon određenog broja alokacija.
Uklanjanje stavki koje softver više ne zahtijeva da bi stvorio mjesto u memoriji za dinamičnije objekte naziva se „sakupljanje smeća“.
20. Opišite faze testiranja koristeći Golang.
Golang obezbeđuje automatizovano testiranje paketa koristeći prilagođene pakete za testiranje. Da biste uspostavili novi paket, kreirajte datoteku koja se završava sa _test.go i uključuje funkciju TestXxx, gdje je Xxx zamijenjen imenom funkcije koju testirate.
Funkcija koja testira mogućnosti prijave, na primjer, zvala bi se TestLogin. Datoteka paketa za testiranje je tada uključena u isti paket kao i datoteka koja se testira.
Test fajl će biti preskočen tokom običnog izvršavanja, ali će se pokrenuti kada unesete go test komandu.
21. Šta su zapravo kriške u Go?
Slice su važan tip podataka Go koji pruža moćnije sučelje za sekvence od nizova. Isječci, za razliku od nizova, se kucaju isključivo ovisno o elementima koje sadrže (a ne o broju elemenata).
Da biste napravili prazan isečak dužine koja nije nula, koristite ugrađenu ključnu reč „make“.
22. Šta je zapravo hrpa memorija?
Pohranjujemo dinamički formirane objekte i varijable u memoriju hrpe. Kada više ne koristimo objekt, obično brišemo hrpu memorije koju je zauzimao.
23. Šta su zapravo zatvaranja funkcija?
Zatvaranja funkcija su tip funkcijske vrijednosti koja stvara eksterno referencirane varijable. Funkcija ima pristup i kontrolu nad vrijednostima referentnih varijabli.
Kao ilustracija, zatvaranje koje vraća adder() je svako vezano za različitu referentnu varijablu zbroja.
24. Šta znači Golangova izjava Goto?
Naredba goto funkcionira kao jump izjava u Golangu. Goto se koristi za pružanje kontrole određene oznake nad programom.
Može se koristiti za preskakanje dijelova koda i prelazak pravo na potrebne izraze, ili se može koristiti za ponavljanje dijela programskog koda u određenim okolnostima.
25. Šta su Lvalue i Rvalue u Golangu?
Lvalue:
- Aludira na mjesto sjećanja.
- Može se promijeniti.
- Označava identifikator varijable.
- Može se pojaviti lijevo ili desno od operatora =.
- U redu x =20, na primjer, x je lvrijednost, a 20 je rvrijednost.
Rvalue:
- Označava fiksnu vrijednost.
- Predstavlja vrijednost podataka pohranjenu u memoriji.
- Uvijek se pojavljuje na desnoj strani operatora =.
- Izraz 10 = 20 je netačan, na primjer, jer postoji rvalue (10) lijevo od = operatora.
26. Koje su konstrukcije petlje u Go-u?
U Go postoji samo jedna komponenta petlje: petlja for. Petlja for se sastoji od tri dijela koji su odvojeni tačkom i zarezom:
- Naredba Init se izvodi prije početka petlje. Često je to deklaracija varijable koja se pojavljuje samo unutar opsega for petlje.
- Prije svake iteracije, naredba uvjeta se procjenjuje kao Boolean kako bi se odlučilo treba li se petlja nastaviti.
- Post izjava se pokreće na kraju svake iteracije.
27. Šta su zapravo obrasci dizajna?
Obrasci dizajna su komadi koda koji se mogu ponovo koristiti za rješavanje uobičajenih softverskih problema. Ako koristite obrasce dizajna, vaši projekti će generirati modularniji, skalabilniji i efikasniji softver. Dizajnerski obrasci vam pomažu da proširite svoje aplikacije i radite s timom. Uobičajeni obrasci dizajna uključuju Factory Method, Singleton, Facade i Decorator.
28. Koji je najbolji Golang paket za jednostavne operacije sa datotekama? Koji se dodatni Golang paketi koriste za manipulaciju datotekama?
Interfejs nezavisan od platforme obezbeđen je paketom standardne biblioteke os. Kada komuniciramo sa datotekama, koristimo ih za sistemske funkcije. Osmišljeno je da interfejs OS bude konzistentan u svim operativnim sistemima.
Kao rezultat toga, aplikacije koje razvijamo rade iste na Windows, Linux i Mac. Ostali paketi Go standardne biblioteke uključuju io, ioutil i bufio. Oni rade s datotekama i dodaju funkcionalnost. Međutim, oni nisu potrebni za osnovne operacije datoteka. Potreban nam je samo os paket.
29. Dajte objašnjenje Golangove objektno orijentirane arhitekture.
Golang ne koristi dizajn klasnih objekata kao konvencionalni Objektno orijentirano programiranje radi. Umjesto toga, složene strukture podataka i ponašanje se pohranjuju u strukture i metode.
Struktura je samo šema sa nacrtom za podatke koje će struktura nositi. Strukture se mogu koristiti za simboliziranje ideja iz stvarnog svijeta, kao što su knjige, ljudi ili automobili.
30. Koje vrste konverzije Golang podržava?
Kada je u pitanju eksplicitno kucanje, Go je vrlo izbirljiv. Nijedna konverzija tipa se ne vrši automatski. Da biste odredili varijablu jednog tipa drugom, konverzija tipa mora se eksplicitno izvršiti.
31. Opišite svrhu i rad tvrdnje tipa.
U GO, konverzija tipova se koristi za transformaciju različitih tipova. Eksplicitna vrijednost specificiranog tipa se izdvaja iz vrijednosti sučelja pomoću tvrdnje tipa.
32. Šta je zapravo tip strukture?
Struktura se sastoji od liste imenovanih komponenti koje se nazivaju polja. Za svako polje postoji vrsta i naziv. Drugi način da se struktura shvati kao grupa povezanih svojstava. Oni su korisni za kombinovanje podataka za kreiranje zapisa.
33. Objasnite pozadinski niz vrijednosti slice.
Kada izgradimo isječak, Go proizvodi tajni niz koji se zove backing ili underlying niz iza scene, a nova varijabla tipa slice se poziva na njega. Stavke, a ne kriška, pohranjuju se u pozadinski niz.
Slice su implementirane u Go kao strukture podataka koje se nazivaju zaglavlja slice-a, koja djeluju kao reprezentacija slice-a u vrijeme izvođenja.
34. Da li je potrebno imati i GOPATH i GOROOT varijable, i ako jeste, zašto?
Obično ni jedno ni drugo nije neophodno. Jedina varijabla koja se mora postaviti da ukazuje na stablo paketa Go ili stabla je GOPATH.
GOROOT se odnosi na korijen matičnog direktorija za programski jezik Go, međutim, gotovo sigurno je već postavljen na lokaciju trenutne Go instalacije.
Ako postoje brojne verzije jezika Go na istom sistemu, ili ako je Go jezik preuzet kao binarni paket sa interneta ili premješten sa drugog stroja, GOROOT varijabla mora biti postavljena.
35. Da li Golang omogućava nasljeđivanje?
Nasljeđivanje je osnovni pojam u objektno orijentiranom programiranju koji se odnosi na prenošenje svojstava superklase na osnovnu klasu.
Kako Golangu nedostaju klase, nasljeđivanje se postiže ugrađivanjem strukture i strukture se ne mogu direktno proširiti, moramo koristiti ideju kompozicije da kreiramo nove objekte sa strukturom.
36. Kako se CGo pojavljuje u Golangu?
Iz Go izvornog fajla sa definisanim karakteristikama, cGo kreira Go i C fajlove koji se mogu spojiti u jedinstveni Go paket. C se odnosi na "pseudo-paket", što je druga fraza koju generiše cGo za upućivanje na C-ov imenski prostor.
37. Koji je tip pokazivača u Golangu?
Alfanumeričke oznake ili oznake za određene memorijske regije poznate su kao varijable. Tip varijable poznat kao pokazivač pohranjuje memorijsku adresu druge varijable.
Adresa varijable je predstavljena vrijednosti pokazivača, ili nula ako varijabla još nije uspostavljena. Baš kao što varijabla predstavlja memorijsku lokaciju vrijednosti, pokazivač pokazuje na tu adresu.
zaključak
Cilj programskog jezika Golang bio je brže kreiranje efikasnih programa. Kompanije su počele da koriste Golang kada su počele da shvataju njegove prednosti.
Golang je bio izuzetno efikasan u podsticanju interesa programera, povećanju njihove osnovne upotrebe i, posljedično, mogućnosti zapošljavanja. Odgovori na gore navedena pitanja, koja su najčešća pitanja koja se postavljaju tokom intervjua za Golang, mogu vam pomoći da nađete posao u Golangu koji tražite.
vidjeti Hashdork's Interview Series za pomoć u pripremi intervjua.
Ostavite odgovor