Sisällysluettelo[Piilottaa][Näytä]
- 1. Kuvaile Golangia.
- 2. Mitä etuja Golla on muihin kieliin verrattuna?
- 3. Mikä on fmt Golang-ohjelmoinnissa?
- 4. Mitä Go-liittymät tarkalleen ottaen ovat?
- 5. Mitä merkkijono-literaaalit tarkalleen ottaen ovat?
- 6. Miten työympäristöt ja parametrit määritetään Golangissa?
- 7. Kuvaile Golang-paketteja?
- 8. Mitä tietotyyppejä Golang tukee?
- 9. Mitä tarkoitat muuttujan staattisella tyyppimäärityksellä Golangissa?
- 10. Mikä on Golangissa dynaaminen muuttujan ilmoitus?
- 11. Kuinka voin käyttää mukautettuja paketteja GO-ohjelmointikielellä?
- 12. Mikä goutiini tarkalleen on? Kuinka voit lopettaa sen?
- 13. Kuvaile riimua.
- 14. Mikä on Go idiomi edustaa enumeja?
- 15. Miten muuttujan tyyppi tarkistetaan ajon aikana?
- 16. Kuvaile Go-kanavia.
- 17. Selitä Golangin menetelmät.
- 18. Mikä datakilpailu oikein on?
- 19. Mitä Go-jätteenkeräys oikein on?
- 20. Kuvaile testauksen vaiheet Golangilla.
- 21. Mitä siivut Gossa tarkalleen ovat?
- 22. Mikä tarkalleen on kasomuisti?
- 23. Mitä toimintojen sulkemiset tarkalleen ovat?
- 24. Mitä Golangin goto-lause tarkoittaa?
- 25. Mitä Golangissa ovat Lvalue ja Rvalue?
- 26. Mitkä ovat Go:ssa silmukkarakenteet?
- 27. Mitä suunnittelumallit tarkalleen ottaen ovat?
- 28. Mikä on paras Golang-paketti yksinkertaisiin tiedostotoimintoihin? Mitä muita Golang-paketteja käytetään tiedostojen käsittelyyn?
- 29. Anna selitys Golangin olio-arkkitehtuurista.
- 30. Mitä muunnostyyppejä Golang tukee?
- 31. Kuvaa tyyppiväitteen tarkoitus ja toiminta.
- 32. Mikä tarkalleen on rakennetyyppi?
- 33. Selitä viipaleen arvon taustataulukko.
- 34. Onko tarpeen käyttää sekä GOPATH- että GOROOT-muuttujia, ja jos on, miksi?
- 35. Mahdollistaako Golang perinnön?
- 36. Miten CGo näkyy Golangissa?
- 37. Mikä on osoitintyyppi Golangissa?
- Yhteenveto
Go-ohjelmointikieli, joka tunnetaan usein nimellä Golang, on avoimen lähdekoodin ohjelmointikieli, joka on verrattavissa C:hen, mutta on suunniteltu nopeaan kääntämiseen, sujuvaan samanaikaisuuteen ja kehittäjien mukavuuteen.
Tämän kielen on kehittänyt ja käyttänyt Google, mutta se on saanut vetovoimaa muissa yrityksissä viime vuosina, kun samanaikaisen, verkotetun ohjelmoinnin kysyntä on kasvanut.
Golang tekee kehityksestä helpompaa kehittäjille tarjoamalla optimaalisen käännöksen nopeaa ohjelmistosovelluskehitystä varten, tasaisemman samanaikaisuuden, parannetun suoritustehokkuuden ja vähemmän vikoja.
Golangista on nopeasti tulossa suosittu yritysohjelmointikieli, jolla on useita työllistymisvaihtoehtoja. Monet IT-mestarit, kuten Google, Uber ja Apple, rakastavat Golangia sen lyhyemmän kehitysajan, oppimisen helppouden, parannetun käyttöajan, roskienkeräyksen ja muiden etujen vuoksi.
Kun yhä useammat yritykset käyttävät Golangia, Golangin ohjelmoijien tarve kasvaa. Lopputulos? Golangin oppiminen tarjoaisi useita työllistymismahdollisuuksia.
Jos haluat työskennellä Golang-kehittäjänä, sinun on valmistauduttava haastatteluusi riittävästi. Siksi kokosimme tämän kattavan kokoelman Golangin haastattelukysymyksiä.
Tässä viestissä esittelemme Golangin haastattelun peruskysymyksiä edistyneisiin kysymyksiin, jotta pääset helposti haastattelun läpi.
1. Kuvaile Golangia.
Go on korkeatasoinen, yleiskäyttöinen ohjelmointikieli joka tukee roskien keräämistä ja samanaikaista ohjelmointia ja on erittäin tiukasti ja staattisesti kirjoitettu. Go-sovellukset luodaan hyödyntämällä paketteja, jotka tarjoavat tehokkaan riippuvuuden hallinnan.
Lisäksi se hyödyntää käännöslinkkilähestymistapaa suoritettavien binäärien luomisessa lähdekoodista. Go on suoraviivainen kieli, jolla on kauniit ja selkeät syntaktiset rakenteet.
Sen mukana tulee joukko vahvoja vakiokirjastoja, joita kehittäjät voivat käyttää ongelmien ratkaisemiseen ilman, että tarvitaan muita paketteja.
2. Mitä etuja Golla on muihin kieliin verrattuna?
- Go-koodi kehitettiin käytännöllisyyttä ajatellen, toisin kuin muut älyllisinä kokeiluina alkaneet kielet. Jokainen syntaksin ja ominaisuuksien valinta on tehty ohjelmoijan mukavuutta ajatellen.
- Koska automaattinen roskienkeruu toimii samanaikaisesti sovelluksen kanssa, se on paljon tehokkaampi kuin Java tai Python.
- Skaalautuvuus ja samanaikaisuus ovat molemmat etusijalla Golangissa.
- Golangia pidetään yleensä ymmärrettävämpänä kuin muita kieliä, koska sillä on yksi standardoitu koodirakenne.
3. Mikä on fmt Golang-ohjelmoinnissa?
Muoto-paketti on merkitty symbolilla fmt. Käyttäjät voivat käyttää tätä toimintoa perustekstin, arvojen tai minkä tahansa muun muotoilemiseen ja tulostamiseen.
Sen avulla käyttäjät voivat myös vastaanottaa päätteen syötteitä, kirjoittaa tiedostoon kirjoittajan avulla ja jopa luoda räätälöityjä hienoja virheilmoituksia. Tämä paketti koskee tulon ja lähdön muotoilua.
4. Mitä Go-liittymät tarkalleen ottaen ovat?
Go:n käyttöliittymät eroavat muiden kielten käyttöliittymistä. Go-liittymät ovat erityinen tyyppi, jota käytetään ilmaisemaan yhden tai useamman menetelmän allekirjoituksen kokoelma.
Käyttöliittymä muodostetaan käyttämällä termiä "tyyppi", jota seuraa nimi ja avainsanaliittymä. Liitännät voidaan määritellä seuraavasti:
- kokoelma menetelmiä
- Tyyppi
5. Mitä merkkijono-literaaalit tarkalleen ottaen ovat?
Merkkijonoliteraali on merkkijonovakio, joka saadaan ketjuttamalla kirjaimia. Raaka ja tulkittu merkkijonoliteraali ovat kahdenlaisia merkkijonoliteraaaleja. Raaka merkkijonoliteraalit on ympäröity backticksillä (foo) ja sisältävät tulkitsemattomia UTF-8-merkkejä.
Tulkitut merkkijonoliteraalit ovat lainausmerkeissä kirjoitettuja merkkijonoja, jotka sisältävät kaikki merkit paitsi rivinvaihto ja epätäydelliset kaksoislainausmerkit.
6. Miten työympäristöt ja parametrit määritetään Golangissa?
Työympäristöt ja asetukset voidaan määrittää nykyisin laajasti käytetyllä JSON:lla. Se, että JSON sisältyy vakiokirjastoon, on sen tärkein etu.
Vakiokirjasto tarjoaa kirjoitusmenetelmiä tarkoitettuun tietorakenne, mikä tekee siitä erittäin luettavan. YAML-paketti Golle on lisävaihtoehto.
7. Kuvaile Golang-paketteja?
Paketit ovat kansioita, jotka sisältävät muita paketteja ja niiden lähdekoodia Go-työtilassa. Linkitetyt paketit sisältävät kaiken koodin, mukaan lukien muuttujat, funktiot ja tyypit, jotka on kirjoitettu lähdetiedostoihin.
Jokainen lähdetiedosto on osa pakettia, ja go-paketteja voidaan tallentaa myös pakettien sisään.
8. Mitä tietotyyppejä Golang tukee?
Golang käyttää seuraavia tyyppejä:
- Menetelmä
- boolean
- Numeerinen
- jono
- Osoitin
- Toiminto
- liitäntä
- Viipale
- struct
- kartta
- Kanava
- Ryhmä
9. Mitä tarkoitat muuttujan staattisella tyyppimäärityksellä Golangissa?
Kääntäjä voi jatkaa toisella käännöksellä ilman, että tarvitsee saada kattavaa tietoa muuttujasta staattisen tyyppisten muuttujamäärittelyjen ansiosta, jotka vakuuttavat, että muuttujia on vain yksi, jolla on annettu laji ja nimi.
Muuttujan ilmoitus on tärkeä vain kääntämisen aikana; kääntäjä vaatii todellisen muuttujan ja ilmoituksen muodostaessaan yhteyden sovellukseen.
10. Mikä on Golangissa dynaaminen muuttujan ilmoitus?
Kääntäjän on selitettävä dynaamisen tyyppisen muuttujailmoituksen muuttuja sille siirretyn määrän perusteella. Vaadittavana ehtona kääntäjä ei vaadi muuttujaa staattista luokittelua varten.
11. Kuinka voin käyttää mukautettuja paketteja GO-ohjelmointikielellä?
Jos olet luomassa erillistä go get -taulukkoprojektia kirjastollesi ja se on vain sisäiseen käyttöön, voit kirjoittaa koodin näin.
- Sijoita kirjastotiedostohakemisto projektisi hakemiston alle.
- Viittaa kirjastoon sen polun mukaan suhteessa projektin sisältävän työtilan juureen.
12. Mikä goutiini tarkalleen on? Kuinka voit lopettaa sen?
Gorutiini on toiminto tai toimenpide, joka suoritetaan samanaikaisesti muiden goutiinien kanssa omistetussa goritiinisäikeessä. Gorutine-langat ovat kevyempiä kuin tavalliset langat, ja useimmat Golang-sovellukset käyttävät tuhansia gorutiineja samanaikaisesti.
Gorutiini voidaan pysäyttää ohjaamalla se signaalikanavan kautta. Gorutiinit voivat vastata signaaleihin vain, jos ne on ohjattu tarkistamaan, joten tee tarkistukset kohtuullisissa paikoissa, kuten for-silmukan yläosassa.
13. Kuvaile riimua.
Go:ssa riimu on sisäänrakennettu tyyppi, jonka nimi on int32. Unicode CodePoint toimii riimuna Gossa. Riippumatta siitä, kuinka monta tavua koodipiste vie, se voidaan esittää riimulla.
Riimujen ei tarvitse olla järjestyksessä merkkijonossa. Vaikka voimme muuntaa merkkijonon ja runon välillä, ne eivät ole samoja.
14. Mikä on Go idiomi edustaa enumeja?
Golang-ohjelmointikieli ei suoraan tue enumeja. Iotaa ja vakioita voidaan käyttää enumien toteuttamiseen. Mitä tahansa seuraavista lähestymistavoista voidaan käyttää lueteltujen tyyppien toteuttamiseen:
- esittelemme uuden kokonaislukutyypin
- Iotaa käytetään ilmaisemaan sen arvo.
- Tarjoamalla tyypille merkkijonofunktio
15. Miten muuttujan tyyppi tarkistetaan ajon aikana?
Tyyppikytkin on tehokkain tapa määrittää muuttujan tyyppi reaaliajassa. Tyyppikytkintä käytettäessä muuttujat arvioidaan tyypin sijaan arvon mukaan.
Sekä oletustapaus, joka suoritetaan, jos mikään tapauksista ei ole tosi, että vähintään yksi tapaus, joka toimii ehdollisena lauseena, ovat läsnä jokaisessa kytkimessä. Voit esimerkiksi suunnitella Tyyppikytkimen, joka määrittää, onko sisällyttämäni rajapinta-arvo tyyppi int vai merkkijono:
16. Kuvaile Go-kanavia.
Go-kanava mahdollistaa tiedonsiirron ja siirron gorutiinien välillä. Samantyyppistä dataa voidaan lähettää yhden kanavan kautta.
Goroutines pystyvät lähettämään ja vastaanottamaan dataa saman kanavan kautta kanavan kaksisuuntaisen tietovirran ansiosta.
17. Selitä Golangin menetelmät.
Golang ei tarjoa luokkia, mutta tukee menetelmiä. Nämä menetelmät ovat identtisiä funktioiden kanssa sillä poikkeuksella, että Go-menetelmillä on vastaanotinparametri.
Go-menetelmällä on pääsy vastaanottimen ominaisuuksiin vastaanottimen parametrien kautta. Go-menetelmät, jotka tunnetaan myös vastaanotintoimintoina, auttavat esittämään tarkemman ja todellisen idean.
18. Mikä datakilpailu oikein on?
Yleisin ja vaikein virheenkorjaus on datakilpailu. Synkronoitumaton pääsy jaettuun muistiin tai useiden gorutiinien suorittaminen samanaikaisesti ilman erillistä käsittelyä johtaa datakilpailuvirheeseen.
19. Mitä Go-jätteenkeräys oikein on?
Roskienkeräys käyttää uudelleen tallennustilaa, joka on dynaamisesti määritetty ohjelmalle muiden objektien käyttöön. Sana viittaa usein jätteenkeräimen automatisoituun regenerointiin rutiininomaista varastointia varten eikä nimenomaiseen koodiin (joka on toimittanut ohjelmoija) tiettyjen muistilohkojen vapauttamiseksi.
Automaattinen roskakorin kerääminen aloitetaan usein, kun vapaan RAM-muistin määrä putoaa ennalta määritellyn kynnyksen alle tai tietyn määrän varauksia.
Sellaisten kohteiden poistamista, joita ohjelmisto ei enää tarvitse luodakseen muistipaikkaa dynaamisemmille kohteille, kutsutaan "roskakeräyksi".
20. Kuvaile testauksen vaiheet Golangilla.
Golang tarjoaa pakettien automaattisen testauksen mukautettujen testauspakettien avulla. Luo uusi sarja luomalla tiedosto, joka päättyy _test.go ja sisältää TestXxx-funktion, jossa Xxx korvataan testattavan ominaisuuden nimellä.
Toiminto, joka testaa esimerkiksi kirjautumisominaisuuksia, saisi nimen TestLogin. Testausohjelmiston tiedosto sisällytetään sitten samaan pakettiin kuin testattava tiedosto.
Testitiedosto ohitetaan tavallisen suorituksen aikana, mutta se suoritetaan, kun annat go test -komennon.
21. Mitä siivut Gossa tarkalleen ovat?
Slices ovat tärkeä Go-tietotyyppi, joka tarjoaa tehokkaamman käyttöliittymän sekvensseille kuin taulukot. Leikkeet, toisin kuin taulukot, kirjoitetaan vain niiden sisältämien elementtien mukaan (ei elementtien lukumäärän mukaan).
Käytä sisäänrakennettua "make"-avainsanaa luodaksesi tyhjän siivun, jonka pituus ei ole nolla.
22. Mikä tarkalleen on kasomuisti?
Tallennamme dynaamisesti muodostetut objektit ja muuttujat kasamuistiin. Kun emme enää käytä objektia, poistamme yleensä sen varaaman kasan muistin.
23. Mitä toimintojen sulkemiset tarkalleen ovat?
Toimintojen sulkemiset ovat eräänlainen funktioarvo, joka muodostaa ulkoisesti viitattuja muuttujia. Funktiolla on pääsy viitattujen muuttujien arvoihin ja niiden hallinta.
Esimerkkinä summaer():n palauttama sulkeminen on kukin sidottu eri referoituun summamuuttujaan.
24. Mitä Golangin goto-lause tarkoittaa?
Goto-lause toimii hyppylauseena Golangissa. Goto on tottunut tarjoamaan määritetyn tarran hallinnan ohjelmalle.
Sitä voidaan käyttää ohittamaan koodin osia ja siirtymään suoraan tarvittaviin lauseisiin tai sitä voidaan käyttää toistamaan ohjelmakoodin osa tietyissä olosuhteissa.
25. Mitä Golangissa ovat Lvalue ja Rvalue?
Larvo:
- Se viittaa muistipaikkaan.
- Sitä voidaan muuttaa.
- Se ilmaisee muuttujan tunnisteen.
- Se saattaa esiintyä =-operaattorin vasemmalla tai oikealla puolella.
- Esimerkiksi rivillä x =20 x on lvvalue ja 20 on rvalue.
Rarvo:
- Se tarkoittaa kiinteää arvoa.
- Se edustaa muistiin tallennettua data-arvoa.
- Se esiintyy aina =-operaattorin oikealla puolella.
- Lauseke 10 = 20 on virheellinen esimerkiksi, koska =-operaattorin vasemmalla puolella on rarvo (10).
26. Mitkä ovat Go:ssa silmukkarakenteet?
Gossa on vain yksi silmukkakomponentti: for-silmukka. For-silmukka koostuu kolmesta puolipisteellä erotetusta osasta:
- Init-käsky ajetaan ennen silmukan alkamista. Se on usein muuttujan ilmoitus, joka näkyy vain for-silmukan puitteissa.
- Ennen jokaista iteraatiota ehtolauseke arvioidaan Boolen funktiona sen päättämiseksi, pitäisikö silmukaa jatkaa.
- Jälkilausunto ajetaan jokaisen iteraation lopussa.
27. Mitä suunnittelumallit tarkalleen ottaen ovat?
Suunnittelumallit ovat koodipaloja, joita voidaan käyttää uudelleen yleisten ohjelmisto-ongelmien ratkaisemiseen. Jos käytät suunnittelumalleja, projektisi luovat modulaarisempia, skaalautuvampia ja tehokkaampia ohjelmistoja. Suunnittelumallit auttavat sinua laajentamaan sovelluksiasi ja työskentelemään tiimin kanssa. Yleisiä suunnittelumalleja ovat Factory Method, Singleton, Facade ja Decorator.
28. Mikä on paras Golang-paketti yksinkertaisiin tiedostotoimintoihin? Mitä muita Golang-paketteja käytetään tiedostojen käsittelyyn?
Alustasta riippumattoman käyttöliittymän tarjoaa käyttöjärjestelmän standardikirjastopaketti. Kun olemme vuorovaikutuksessa tiedostojen kanssa, käytämme niitä järjestelmätoimintoihin. Käyttöjärjestelmän käyttöliittymän on tarkoitus olla johdonmukainen kaikissa käyttöjärjestelmissä.
Tämän seurauksena kehittämämme sovellukset toimivat samoin Windowsissa, Linuxissa ja Macissa. Muita Gon vakiokirjastopaketteja ovat io, ioutil ja bufio. Ne toimivat tiedostoilla ja lisäävät toimintoja. Niitä ei kuitenkaan vaadita perustiedostotoimintoihin. Tarvitsemme vain os-paketin.
29. Anna selitys Golangin olio-arkkitehtuurista.
Golang ei käytä luokka-objektisuunnittelua tavanomaisena Olio-ohjelmointi tekee. Monimutkaiset tietorakenteet ja -käyttäytyminen tallennetaan sen sijaan rakenteisiin ja menetelmiin.
Rakenne on vain skeema, jossa on suunnitelma tiedoille, joita rakenne kuljettaa. Rakenteita voidaan käyttää symboloimaan ideoita todellisesta maailmasta, kuten kirjoja, ihmisiä tai autoja.
30. Mitä muunnostyyppejä Golang tukee?
Mitä tulee selkeään kirjoittamiseen, Go on erittäin nirso. Mitään tyypin muuntamista ei tehdä automaattisesti. Tyyppimuunnos on tehtävä eksplisiittisesti, jotta voit määrittää yhden tyypin muuttujan toiseksi.
31. Kuvaa tyyppiväitteen tarkoitus ja toiminta.
GO:ssa tyyppimuunnosa käytetään erilaisten tyyppien muuntamiseen. Määritetyn tyypin eksplisiittinen arvo erotetaan liitäntäarvosta tyyppivahvistuksen avulla.
32. Mikä tarkalleen on rakennetyyppi?
Rakenne koostuu luettelosta nimetyistä komponenteista, joita kutsutaan kentiksi. Jokaiselle alalle on laji ja nimi. Toinen tapa ajatella rakennetta on joukko toisiinsa liittyviä ominaisuuksia. Ne ovat hyödyllisiä tietojen yhdistämisessä tietueiden luomiseksi.
33. Selitä viipaleen arvon taustataulukko.
Kun rakennamme viipaletta, Go tuottaa kulissien taakse salaisen taulukon, jota kutsutaan tausta- tai taustataulukoksi, ja uusi slice-tyyppinen muuttuja viittaa siihen. Kohteet, ei siivu, tallennetaan taustataulukkoon.
Slicet on toteutettu Gossa tietorakenteina, joita kutsutaan viipaleiden otsikoiksi, jotka toimivat viipaleen ajonaikaisena esityksenä.
34. Onko tarpeen käyttää sekä GOPATH- että GOROOT-muuttujia, ja jos on, miksi?
Yleensä kumpikaan ei ole välttämätöntä. Ainoa muuttuja, joka on asetettava osoittamaan Go-pakettipuuta tai -puita, on GOPATH.
GOROOT viittaa Go-ohjelmointikielen kotihakemiston juureen, mutta se on lähes varmasti jo asetettu nykyisen Go-asennuksen sijaintiin.
Jos samassa järjestelmässä on useita Go-kieliversioita tai jos Go-kieli on ladattu binääripaketina Internetistä tai siirretty toiselta koneelta, GOROOT-muuttuja on asetettava.
35. Mahdollistaako Golang perinnön?
Periytys on olioohjelmoinnin peruskäsite, joka viittaa superluokan ominaisuuksien siirtämiseen perusluokkaan.
Koska Golangista puuttuu luokkia, periytyminen tapahtuu rakenteen upottamalla ja rakenteita ei voida suoraan laajentaa, meidän on käytettävä kokoonpanon ideaa luodaksemme uusia objekteja rakenteen avulla.
36. Miten CGo näkyy Golangissa?
Go-lähdetiedostosta, jossa on määritellyt ominaisuudet, cGo luo Go- ja C-tiedostoja, jotka voidaan ketjuttaa ainutlaatuiseksi Go-paketiksi. C viittaa "pseudo-pakettiin", joka on erilainen ilmaus, jonka cGo on luonut viittaamaan C:n nimiavaruuteen.
37. Mikä on osoitintyyppi Golangissa?
Tiettyjen muistialueiden aakkosnumeeriset nimet tai tarrat tunnetaan muuttujina. Muuttujatyyppi, joka tunnetaan nimellä osoitin, tallentaa toisen muuttujan muistiosoitteen.
Muuttujan osoite esitetään osoittimen arvona tai nolla, jos muuttujaa ei ole vielä määritetty. Aivan kuten muuttuja edustaa arvon muistipaikkaa, osoitin osoittaa kyseiseen osoitteeseen.
Yhteenveto
Golang-ohjelmointikielen tavoitteena oli luoda tehokkaita ohjelmia nopeammin. Yritykset alkoivat hyödyntää Golangia, kun he alkoivat ymmärtää sen edullisia mahdollisuuksia.
Golang on herättänyt erittäin tehokkaasti kehittäjien kiinnostusta, lisännyt heidän peruskäyttöään ja siten myös työmahdollisuuksia. Vastaukset edellä mainittuihin kysymyksiin, jotka ovat yleisimpiä Golangin haastatteluissa kysyttyjä, voivat auttaa sinua saamaan etsimäsi Golang-työpaikan.
nähdä Hashdorkin haastattelusarja apua haastattelun valmisteluun.
Jätä vastaus