Tartalomjegyzék[Elrejt][Előadás]
- 1. Ismertesse Golangot.
- 2. Milyen előnyei vannak a Go-nak más nyelvekkel szemben?
- 3. Mi az fmt a Golang programozásban?
- 4. Mi is pontosan az a Go interfészek?
- 5. Mik is pontosan a karakterlánc-literálok?
- 6. Hogyan vannak beállítva a munkakörnyezetek és a paraméterek a Golangban?
- 7. Ismertesse a Golang csomagokat?
- 8. Milyen adattípusokat támogat a Golang?
- 9. Mit értesz egy változó statikus típusdeklarációján Golang nyelven?
- 10. Golangban mi a dinamikus változó deklarációja?
- 11. Hogyan használhatom az egyéni csomagokat a GO programozási nyelven?
- 12. Mi is pontosan a gorutin? Hogyan lehet ennek véget vetni?
- 13. Ismertessen egy rúnát!
- 14. Mi a Go idióma az enumok ábrázolására?
- 15. Hogyan történik egy változó típusának ellenőrzése futás közben?
- 16. Ismertesse a Go csatornákat.
- 17. Magyarázza el a Golang-módszereket.
- 18. Mi is pontosan az adatverseny?
- 19. Mi is pontosan a Go szemétszállítás?
- 20. Ismertesse a tesztelés szakaszait a Golang segítségével!
- 21. Mik is pontosan a szeletek a Go-ban?
- 22. Mi is pontosan a kupacmemória?
- 23. Mik is pontosan a funkciólezárások?
- 24. Mit jelent Golang goto állítása?
- 25. Golangban mi az Lvalue és Rvalue?
- 26. Melyek a Go-ban a hurkolt konstrukciók?
- 27. Mik is pontosan a tervezési minták?
- 28. Melyik a legjobb Golang csomag egyszerű fájlműveletekhez? Milyen további Golang-csomagokat használnak a fájlkezeléshez?
- 29. Adjon magyarázatot Golang objektum-orientált építészetére!
- 30. Mely konverziós típusokat támogatja a Golang?
- 31. Ismertesse a Típusérvényesítés célját és működését!
- 32. Mi is pontosan a struktúra típus?
- 33. Magyarázza meg egy szeletérték háttértömbjét!
- 34. Szükséges-e mind a GOPATH, mind a GOROOT változó, és ha igen, miért?
- 35. A Golang engedélyezi az öröklést?
- 36. Golangban hogyan jelenik meg a CGo?
- 37. Mi a mutató típusa Golangban?
- Következtetés
A Go programozási nyelv, gyakran ún Golang, egy nyílt forráskódú programozási nyelv, amely hasonló a C-hez, de a gyors fordításra, a zökkenőmentes párhuzamosságra és a fejlesztők kényelmére készült.
Ezt a nyelvet a Google fejlesztette ki és használta, de az elmúlt években más cégeknél is elterjedt, ahogy a párhuzamos, hálózati programozás iránti kereslet nőtt.
A Golang megkönnyíti a fejlesztést a fejlesztők számára azáltal, hogy optimális összeállítást kínál a gyors szoftveralkalmazás-fejlesztéshez, gördülékenyebb párhuzamossághoz, jobb futásidejű hatékonysághoz és kevesebb hiba miatt.
A Golang gyorsan népszerű vállalati programozási nyelvvé válik, számos foglalkoztatási lehetőséggel. Sok IT-behemót, mint például a Google, az Uber és az Apple, imádja a Golangot a rövidebb fejlesztési idő, a könnyű tanulás, a megnövelt futási idő, a szemétgyűjtés és egyéb előnyök miatt.
Ahogy egyre több cég használja a Golangot, úgy nő az igény a Golang programozókra. Alsó vonal? A Golang tanulása számos munkalehetőséget kínálna.
Ha Golang-fejlesztőként szeretne dolgozni, megfelelően fel kell készülnie az interjúra. Ezért állítottuk össze ezt az átfogó Golang-interjúkérdéseket.
Ebben a bejegyzésben az alapvető és haladó Golang-interjúkérdéseket mutatjuk be, így könnyen átvészelheti az interjút.
1. Ismertesse Golangot.
A Go egy magas szintű, általános célú programozási nyelv amely támogatja a szemétgyűjtést és a párhuzamos programozást, és nagyon szorosan és statikusan van beírva. A Go-alkalmazások csomagok felhasználásával jönnek létre, amelyek hatékony függőségkezelést biztosítanak.
Ezen túlmenően kihasználja a fordítási hivatkozás megközelítést, hogy végrehajtható binárisokat hozzon létre a forráskódból. A Go egy egyszerű nyelv, gyönyörű és világos szintaktikai struktúrákkal.
Erős szabványos könyvtárak készletével érkezik, amelyeket a fejlesztők használhatnak problémák megoldására anélkül, hogy más csomagokra lenne szükség.
2. Milyen előnyei vannak a Go-nak más nyelvekkel szemben?
- A Go kódot a gyakorlatiasság szem előtt tartásával fejlesztették ki, ellentétben más nyelvekkel, amelyek szellemi kísérletként indultak. A szintaxis és a funkció minden választása a programozó kényelmét szem előtt tartva történik.
- Mivel az automatikus szemétgyűjtés az alkalmazással párhuzamosan fut, sokkal hatékonyabb, mint a Java vagy a Python.
- A méretezhetőség és a párhuzamosság egyaránt prioritást élvez a Golangban.
- A golang általában érthetőbbnek tekinthető, mint más nyelvek, mivel egyetlen szabványos kódszerkezettel rendelkezik.
3. Mi az fmt a Golang programozásban?
A Formátum csomagot az fmt szimbólum jelöli. A felhasználók ezt a funkciót alapszöveg, értékek vagy bármi más formázására és kinyomtatására használhatják.
Azt is lehetővé teszi a felhasználók számára, hogy terminálbemeneteket kapjanak, fájlba írjanak egy íróval, és akár egyedi, díszes hibaüzeneteket is készítsenek. Ez a csomag a bemenet és a kimenet formázásáról szól.
4. Mi is pontosan az a Go interfészek?
A Go felületei eltérnek más nyelvek felületeitől. A Go interfészek egy speciális típus, amelyet egy vagy több metódusaláírás gyűjteményének kifejezésére használnak.
A felület a „típus” kifejezés felhasználásával jön létre, amelyet a név és a kulcsszó interfész követ. Az interfészek a következőképpen definiálhatók:
- módszerek gyűjteménye
- típus
5. Mik is pontosan a karakterlánc-literálok?
A string literál egy karakterlánc-állandó, amelyet betűk összefűzésével állítanak elő. A nyers és értelmezett karakterlánc-literálok a karakterlánc-literálok két típusa. A nyers karakterlánc-literálokat backtick (foo) veszi körül, és értelmezetlen UTF-8 karaktereket tartalmaznak.
Az értelmezett karakterlánc-literálok dupla idézőjelbe írt karakterláncok, amelyek bármilyen karaktert tartalmaznak, kivéve az újsort és a hiányos dupla idézőjeleket.
6. Hogyan vannak beállítva a munkakörnyezetek és a paraméterek a Golangban?
A munkakörnyezetek és beállítások a manapság széles körben használt JSON segítségével konfigurálhatók. Az a tény, hogy a JSON szerepel a szabványos könyvtárban, a fő előnye.
A szabványos könyvtár írási módszereket biztosít a kívánthoz adatszerkezet, ami nagyon olvashatóvá teszi. A YAML-csomag Go-hoz egy további választás.
7. Ismertesse a Golang csomagokat?
A csomagok olyan mappák, amelyek más csomagokat és azok forráskódját tartalmazzák a Go munkaterületen. A hivatkozott csomagok tartalmazzák a forrásfájlokba írt összes kódot, beleértve a változókat, függvényeket és típusokat is.
Minden forrásfájl egy csomag része, és a go csomagok a csomagokon belül is tárolhatók.
8. Milyen adattípusokat támogat a Golang?
A Golang a következő típusokat használja:
- Módszer
- logikai
- Numerikus
- Húr
- Mutató
- Funkció
- Felület
- Szelet
- Szerkezet
- Térkép
- csatorna
- Sor
9. Mit értesz egy változó statikus típusdeklarációján Golang nyelven?
A fordító egy másik fordítást folytathat anélkül, hogy átfogó információra lenne szüksége a változóról, köszönhetően a statikus típusú változódeklarációknak, amelyek megnyugtatják, hogy csak egy adott típusú és nevű változó létezik.
A változó deklaráció csak a fordítás során fontos; a fordítónak valós változóra és deklarációra van szüksége az alkalmazáshoz való csatlakozáskor.
10. Golangban mi a dinamikus változó deklarációja?
A fordítónak meg kell magyaráznia a változó típusát egy dinamikus típusú változó deklarációban a rá utalt összeg alapján. Kötelező feltételként a fordító nem igényel változót a statikus kategorizáláshoz.
11. Hogyan használhatom az egyéni csomagokat a GO programozási nyelven?
Ha külön go get -table projektet hoz létre a könyvtárához, és ez csak belső használatra szolgál, akkor írhat ilyen kódot.
- Helyezze a könyvtári fájlok könyvtárát a projekt könyvtára alá.
- Hivatkozzon a könyvtárra a projektet tartalmazó munkaterület gyökeréhez viszonyított elérési útja alapján.
12. Mi is pontosan a gorutin? Hogyan lehet ennek véget vetni?
A gorutin egy olyan funkció vagy eljárás, amely más gorutinokkal egyidejűleg fut egy dedikált gorutinszálon. A Goroutine szálak könnyebbek, mint a közönséges szálak, és a legtöbb Golang-alkalmazás több ezer gorutint használ egyidejűleg.
A gorutin megállítható egy jelcsatorna átadásával. A Goroutine-ok csak akkor tudnak reagálni a jelzésekre, ha ellenőrzésre utasítják őket, ezért végezzen ellenőrzéseket ésszerű helyeken, például a for hurok tetején.
13. Ismertessen egy rúnát!
A Go-ban a rúna egy beépített típus, melynek neve int32. A Unicode CodePoint rúnaként szolgál a Go-ban. Nem számít, hány bájtot foglal el a kódpont, rúnával ábrázolható.
A rúnáknak nem kell sorrendben lenniük egy karakterláncban. Bár konvertálhatunk húr és rúna között, ezek nem ugyanazok.
14. Mi a Go idióma az enumok ábrázolására?
A Golang programozási nyelv közvetlenül nem támogatja az enumokat. Iota és konstansok használhatók az enumok megvalósítására. A felsorolt típusok megvalósításához a következő megközelítések bármelyike használható:
- új egész típus bevezetése
- Az Iota az értékének jelzésére szolgál.
- String függvény megadásával a típushoz
15. Hogyan történik egy változó típusának ellenőrzése futás közben?
A Type Switch a leghatékonyabb módszer a változó típusának valós idejű meghatározására. A Típuskapcsoló használatakor a változókat érték helyett típus szerint értékeli a rendszer.
Mind egy alapértelmezett eset, amely akkor kerül végrehajtásra, ha egyik eset sem igaz, és legalább egy eset, amely feltételes utasításként szolgál, minden kapcsolóban jelen van. Tervezhet például egy típuskapcsolót, amely meghatározza, hogy az általam felvett interfészérték az int vagy a string típus-e:
16. Ismertesse a Go csatornákat.
A go csatorna lehetővé teszi az adatátvitelt és a gorutinok közötti átvitelt. Azonos típusú adatok egy csatornán keresztül továbbíthatók.
A Goroutines képes adatokat küldeni és fogadni ugyanazon a csatornán keresztül, a csatorna kétirányú adatáramlása miatt.
17. Magyarázza el a Golang-módszereket.
A Golang nem biztosít osztályokat, de támogatja a módszereket. Ezek a metódusok megegyeznek a függvényekkel, azzal az eltéréssel, hogy a Go metódusoknak vevőparaméterük van.
A Go metódus a vevő paraméterein keresztül hozzáfér a vevő attribútumaihoz. A vevőfunkcióknak is nevezett Go módszerek pontosabb és valósabb elképzelések bemutatását segítik elő.
18. Mi is pontosan az adatverseny?
A leggyakoribb és legnehezebb hibakeresés az adatverseny. A megosztott memóriához való nem szinkronizált hozzáférés vagy több gorutin egyidejű végrehajtása külön kezelés nélkül adatverseny hibához vezet.
19. Mi is pontosan a Go szemétszállítás?
A szemétgyűjtés újrahasznosítja a programhoz dinamikusan hozzárendelt tárolót más objektumok általi használatra. A szó gyakran a hulladékgyűjtő automatizált regenerációjára utal a rutin tároláshoz, nem pedig explicit kódra (melyet egy programozó biztosít) bizonyos memóriablokkok felszabadítására.
Az automatikus kukagyűjtés gyakran akkor indul el, amikor a szabad RAM mennyisége egy előre meghatározott küszöb alá esik, vagy meghatározott számú lefoglalás után.
Az olyan elemek eltávolítását, amelyekre a szoftvernek már nincs szüksége ahhoz, hogy helyet hozzon létre a memóriában a dinamikusabb objektumok számára, „szemétgyűjtésnek” nevezik.
20. Ismertesse a tesztelés szakaszait a Golang segítségével!
A Golang a csomagok automatizált tesztelését biztosítja egyéni tesztcsomagok segítségével. Új programcsomag létrehozásához hozzon létre egy fájlt, amely _test.go végződésű, és tartalmaz egy TestXxx függvényt, ahol az Xxx helyére a tesztelt szolgáltatás neve kerül.
A bejelentkezési képességeket tesztelő függvény például a TestLogin nevet kapja. A tesztcsomag fájlja ezután ugyanabba a csomagba kerül, mint a tesztelt fájl.
A tesztfájlt a rendszer kihagyja a normál végrehajtás során, de lefut, amikor megadja a go test parancsot.
21. Mik is pontosan a szeletek a Go-ban?
A szeletek fontos Go adattípusok, amelyek hatékonyabb interfészt biztosítanak a sorozatokhoz, mint a tömbökhöz. A szeletek, a tömböktől eltérően, kizárólag a bennük lévő elemektől függően kerülnek beírásra (nem az elemek számától).
Olyan üres szelet létrehozásához, amelynek hossza nem nulla, használja a beépített „make” kulcsszót.
22. Mi is pontosan a kupacmemória?
Dinamikusan kialakított objektumokat és változókat halommemóriában tárolunk. Amikor már nem használunk egy objektumot, általában töröljük az általa elfoglalt kupacmemóriát.
23. Mik is pontosan a funkciólezárások?
A függvénylezárások olyan függvényértékek, amelyek külsőleg hivatkozott változókat hoznak létre. A függvény hozzáféréssel rendelkezik a hivatkozott változók értékeihez, és szabályozhatja azokat.
Szemléltetésképpen, az adder() által visszaadott lezárás mindegyik más hivatkozott összeg változóhoz van kötve.
24. Mit jelent Golang goto állítása?
A goto utasítás ugró utasításként működik a Golang nyelvben. A Goto egy meghatározott címkevezérlést biztosít a program felett.
Használható a kódrészletek átugrására, és közvetlenül a szükséges utasításokhoz ugorhat, vagy használható a programkód egy részének megismétlésére bizonyos körülmények között.
25. Golangban mi az Lvalue és Rvalue?
Lérték:
- Emlékhelyre utal.
- Meg lehet változtatni.
- Ez egy változó azonosítót jelöl.
- Előfordulhat az = operátor bal vagy jobb oldalán.
- Az x =20 sorban például x egy lvérték, a 20 pedig egy rérték.
Rérték:
- Fix értéket jelöl.
- Ez egy memóriában tárolt adatértéket jelent.
- Mindig az = operátor jobb oldalán fordul elő.
- A 10 = 20 kifejezés például hibás, mivel az = operátortól balra egy rérték (10) található.
26. Melyek a Go-ban a hurkolt konstrukciók?
A Go-ban egyetlen hurkolt komponens van: a for ciklus. A for ciklus három részből áll, amelyeket pontosvessző választ el:
- Az Init utasítás a ciklus megkezdése előtt fut le. Ez gyakran egy változó deklaráció, amely csak a for ciklus hatókörén belül jelenik meg.
- Minden iteráció előtt a feltétel utasítást logikai értékként értékeli a rendszer, hogy eldöntse, folytatódjon-e a ciklus.
- A post utasítás lefut minden iteráció végén.
27. Mik is pontosan a tervezési minták?
A tervezési minták olyan kóddarabok, amelyek újra felhasználhatók a gyakori szoftverproblémák megoldására. Ha tervezési mintákat használ, a projektjei modulárisabb, skálázhatóbb és hatékonyabb szoftvert fognak generálni. A tervezési minták segítenek az alkalmazások bővítésében és a csapattal való együttműködésben. A gyakori tervezési minták közé tartozik a gyári módszer, a szingli, a homlokzat és a dekorátor.
28. Melyik a legjobb Golang csomag egyszerű fájlműveletekhez? Milyen további Golang-csomagokat használnak a fájlkezeléshez?
A platformfüggetlen felületet az OS szabványos könyvtárcsomagja biztosítja. A fájlokkal való interakció során rendszerfunkciókhoz használjuk őket. Az operációs rendszer interfészének célja, hogy minden operációs rendszeren konzisztens legyen.
Ennek eredményeként az általunk fejlesztett alkalmazások Windowson, Linuxon és Macen is ugyanúgy futnak. A Go egyéb szabványos könyvtári csomagjai közé tartozik az io, ioutil és bufio. Fájlokkal működnek, és funkcionalitást adnak hozzá. Ezek azonban nem szükségesek az alapvető fájlműveletekhez. Csak az OS csomagra van szükségünk.
29. Adjon magyarázatot Golang objektum-orientált építészetére!
A Golang nem használ osztályobjektum-tervet, mint a hagyományos Objektumorientált programozás csinál. Az összetett adatstruktúrákat és viselkedést ehelyett struktúrákban és metódusokban tárolják.
A struktúra csak egy séma a struktúra által hordozott adatok tervrajzával. A szerkezetek felhasználhatók a való világból származó ötletek, például könyvek, emberek vagy autók szimbolizálására.
30. Mely konverziós típusokat támogatja a Golang?
Ha az explicit gépelésről van szó, a Go rendkívül válogatós. A típusátalakítás nem történik meg automatikusan. Az egyik típusú változó egy másikra való kijelöléséhez a típuskonverziót kifejezetten el kell végezni.
31. Ismertesse a Típusérvényesítés célját és működését!
A GO-ban a típuskonverzió az eltérő típusok átalakítására szolgál. A megadott típusú explicit értéket a rendszer kivonja az interfész értékéből egy típus-állítással.
32. Mi is pontosan a struktúra típus?
A struktúra elnevezett összetevők listájából áll, amelyeket mezőknek nevezünk. Minden mezőnek van fajtája és neve. Egy másik módja annak, hogy a struktúrát összefüggő tulajdonságok csoportjaként képzeljük el. Hasznosak az adatok egyesítésekor rekordok létrehozásához.
33. Magyarázza meg egy szeletérték háttértömbjét!
Amikor egy szeletet építünk, a Go létrehoz egy titkos tömböt, amelyet háttér- vagy mögöttes tömbnek hívnak a színfalak mögött, és az új szelet típusú változó hivatkozik rá. Az elemek a háttértömbben tárolódnak, nem a szelet.
A szeleteket a Go alkalmazásban adatstruktúrákként, úgynevezett szeletfejlécekként valósítják meg, amelyek a szelet futásidejű reprezentációjaként szolgálnak.
34. Szükséges-e mind a GOPATH, mind a GOROOT változó, és ha igen, miért?
Általában egyikre sincs szükség. Az egyetlen változó, amelyet be kell állítani, hogy a Go csomagfára vagy fákra mutasson, a GOPATH.
A GOROOT a Go programozási nyelv kezdőkönyvtárának gyökerére utal, azonban szinte biztosan már az aktuális Go telepítés helyére van állítva.
Ha több Go nyelvi verzió van ugyanazon a rendszeren, vagy ha a Go nyelvet bináris csomagként töltötték le az internetről, vagy egy másik gépről helyezték át, akkor a GOROOT változót kell beállítani.
35. A Golang engedélyezi az öröklést?
Az öröklődés egy alapfogalom az objektum-orientált programozásban, amely a szuperosztály tulajdonságainak az alaposztálynak való átadását jelenti.
Mivel a Golangban nincsenek osztályok, az öröklődés struct beágyazással valósul meg, és a struktúrák nem bővíthetők közvetlenül, a kompozíció ötletét kell használnunk új objektumok létrehozására a struktúrával.
36. Golangban hogyan jelenik meg a CGo?
A meghatározott funkciókkal rendelkező Go forrásfájlból a cGo Go és C fájlokat hoz létre, amelyek összefűzhetők egy egyedi Go csomagba. A C egy „pszeudo-csomagra” utal, amely egy másik kifejezés, amelyet a cGo generál a C névterére utalva.
37. Mi a mutató típusa Golangban?
Bizonyos memóriaterületek alfanumerikus megnevezései vagy címkéi változókként ismertek. A pointer néven ismert változótípus egy másik változó memóriacímét tárolja.
Egy változó címét egy mutató érték jelenti, vagy nulla, ha a változót még nem állapították meg. Ahogy a változó egy érték memóriahelyét jelöli, a mutató erre a címre mutat.
Következtetés
A Golang programozási nyelv célja a hatékony programok gyorsabb elkészítése volt. A vállalatok elkezdték használni a Golangot, amikor elkezdték felismerni annak előnyös lehetőségeit.
A Golang rendkívül hatékonyan keltette fel a fejlesztők érdeklődését, növelte bázishasználatukat, és ennek következtében munkalehetőségeiket. A Golang-interjúk során leggyakrabban feltett, fent említett kérdésekre adott válaszok segíthetnek megtalálni azt a golangi állást, amelyet keresel.
Lát Hashdork interjúsorozata segítségért az interjú előkészítéséhez.
Hagy egy Válaszol