Enhavtabelo[Kaŝi][Montri]
- 1. Priskribu Golang.
- 2. Kiajn avantaĝojn Go havas super aliaj lingvoj?
- 3. En Golang-programado, kio estas fmt?
- 4. Kio ĝuste estas Go Interfaces?
- 5. Kio precize estas kordaj literaloj?
- 6. Kiel estas agordaj labormedioj kaj parametroj en Golang?
- 7. Priskribu la Golang-pakaĵojn?
- 8. Kiuj datumtipoj estas subtenataj de Golang?
- 9. Kion vi celas per statika tipa deklaro de variablo en Golang?
- 10. En Golang, kio estas la dinamika varia deklaro?
- 11. Kiel mi povas uzi kutimajn pakaĵojn en la programlingvo GO?
- 12. Kio ĝuste estas gorutino? Kiel vi povas ĉesigi ĝin?
- 13. Priskribu runon.
- 14. Kio estas la Go-idiomo por reprezenti enumojn?
- 15. Kiel la tipo de variablo estas kontrolita ĉe rultempo?
- 16. Priskribu Go-kanalojn.
- 17. Klarigu Golang-Metodojn.
- 18. Kio ĝuste estas datumvetkuro?
- 19. Kio precize estas Go-rubkolekto?
- 20. Priskribu la stadiojn de testado uzante Golang.
- 21. Kio ĝuste estas tranĉaĵoj en Go?
- 22. Kio ĝuste estas amasmemoro?
- 23. Kio ekzakte estas funkcio fermoj?
- 24. Kion signifas la goto-deklaro de Golang?
- 25. En Golang, kio estas Lvaloro kaj Rvaloro?
- 26. En Go, kio estas la loopkonstruaĵoj?
- 27. Kio ĝuste estas dezajnaj ŝablonoj?
- 28. Kio estas la plej bona Golang-pakaĵo por simplaj dosiero-operacioj? Kiuj pliaj Golang-pakaĵoj estas uzataj por dosiermanipulado?
- 29. Donu klarigon pri Objekt-Orientita Arkitekturo de Golang.
- 30. Kiujn konvertajn tipojn Golang subtenas?
- 31. Priskribu la celon kaj operacion de Tipa aserto.
- 32. Kio ĝuste estas struktur-tipo?
- 33. Klarigu la subtenan tabelon de tranĉaĵvaloro.
- 34. Ĉu necesas havi ambaŭ variablojn GOPATH kaj GOROOT, kaj se jes, kial?
- 35. Ĉu Golang ebligas heredon?
- 36. En Golang, kiel aperas CGo?
- 37. Kio estas la montrilo-tipo en Golang?
- konkludo
La programlingvo Go, ofte konata kiel Golang, estas malfermfonta programlingvo kiu estas komparebla al C sed estas dizajnita por rapida kompilo, glata samtempeco, kaj programisto oportuno.
Ĉi tiu lingvo estis evoluigita kaj uzita fare de Guglo, sed ĝi akiris tiradon en aliaj firmaoj en la lastaj jaroj ĉar la postulo je samtempa, interreta programado kreskis.
Golang faciligas disvolviĝon por programistoj proponante optimuman kompilon por rapida disvolvado de programaro, pli glata samtempeco, plifortigita rultempa efikeco kaj malpli da difektoj.
Golang rapide fariĝas populara kompania programlingvo, kun pluraj dungaj elektoj. Multaj IT-guloj, kiel Google, Uber kaj Apple, adoras Golang pro sia pli mallonga disvolva tempo, facileco de lernado, plifortigita rultempo, rubkolekto kaj aliaj avantaĝoj.
Ĉar pli da firmaoj uzas Golang, la bezono de Golang-programistoj kreskas. La malsupra linio? Lernado de Golang donus plurajn dungajn perspektivojn.
Se vi volas labori kiel Golang-programisto, vi devas taŭge prepariĝi por via intervjuo. Tial ni kompilis ĉi tiun ampleksan kolekton de Golang-intervjuaj demandoj.
En ĉi tiu afiŝo, ni prezentos bazajn ĝis altnivelajn intervjuajn demandojn pri Golang, por ke vi facile povu trapasi la intervjuon.
1. Priskribu Golang.
Go estas altnivela, ĝenerala celo programlingvo kiu subtenas rubkolekton kaj samtempan programadon kaj estas tre strikte kaj statike tajpita. Go-aplikoj estas kreitaj per uzado de pakaĵoj, kiuj disponigas efikan dependecadministradon.
Aldone, ĝi utiligas la kompilligan aliron por krei ruleblajn binarojn el fontkodo. Go estas simpla lingvo kun belaj kaj klaraj sintaksaj strukturoj.
Ĝi venas kun aro da fortaj normaj bibliotekoj, kiuj povas esti uzataj de programistoj por solvi problemojn sen la postulo por aliaj pakaĵoj.
2. Kiajn avantaĝojn Go havas super aliaj lingvoj?
- Go-kodo estis evoluigita kun praktikeco en menso, kontraste al aliaj lingvoj kiuj komenciĝis kiel intelektaj eksperimentoj. Ĉiu elekto en sintakso kaj funkcio estas farita kun la oportuno de la programisto en menso.
- Ĉar aŭtomata rubkolekto funkcias samtempe kun la aplikaĵo, ĝi estas multe pli efika ol Java aŭ Python.
- Skalebleco kaj samtempeco estas ambaŭ prioritatitaj en Golang.
- Golang estas kutime konsiderita kiel pli komprenebla ol aliaj lingvoj ĉar ĝi havas ununuran, normigitan kodstrukturon.
3. En Golang-programado, kio estas fmt?
La Format-pakaĵo estas indikita per la simbolo fmt. Uzantoj povas uzi ĉi tiun funkcion por formati bazan tekston, valorojn aŭ ion alian kaj presi ĝin.
Ĝi ankaŭ ebligas al uzantoj ricevi terminalajn enigojn, skribi al dosiero kun verkisto kaj eĉ konstrui laŭmendajn fantaziajn erarmesaĝojn. Ĉi tiu pako temas pri formatado de enigo kaj eligo.
4. Kio ĝuste estas Go Interfaces?
La interfacoj en Go diferencas de tiuj en aliaj lingvoj. Go-Interfacoj estas speciala tipo, kiu estas uzata por esprimi kolekton de unu aŭ pluraj metodosubskriboj.
La interfaco estas formita uzante la terminon "tipo", sekvita de la nomo kaj la ŝlosilvorta interfaco. La interfacoj povas esti difinitaj jene:
- kolekto de metodoj
- tipo
5. Kio precize estas kordaj literaloj?
Ŝnuro laŭvorta estas ĉenkonstanto produktita per kunligado de literoj. Krudaj kaj interpretitaj kordaj literaloj estas la du specoj de kordaj literaloj. Krudaj ĉenvortaĵoj estas enfermitaj per malantaŭaj signoj (foo) kaj enhavas neinterpretajn UTF-8-signojn.
Interpretitaj ĉenvortaĵoj estas ĉenoj skribitaj ene de duoblaj citiloj kaj inkluzive de ajna signo krom novlinio kaj nekompletaj duoblaj citiloj.
6. Kiel estas agordaj labormedioj kaj parametroj en Golang?
Labormedioj kaj agordoj povas esti agorditaj per JSON, kiu estas vaste uzata nuntempe. La fakto, ke JSON estas inkluzivita en la norma biblioteko, estas ĝia ĉefa avantaĝo.
La norma biblioteko disponigas skribmetodojn por la celita datuma strukturo, kio faras ĝin tre legebla. La YAML-pakaĵo por Go estas plia elekto.
7. Priskribu la Golang-pakaĵojn?
Pakoj estas dosierujoj, kiuj enhavas aliajn pakaĵojn kaj sian fontkodon en la laborspaco Go. La ligitaj pakaĵoj inkluzivas ĉion el la kodo, inkluzive de variabloj, funkcioj kaj tipoj, kiuj estas skribitaj en la fontdosieroj.
Ĉiu fontdosiero estas parto de pakaĵo, kaj go-pakaĵoj ankaŭ povas esti konservitaj ene de pakaĵoj.
8. Kiuj datumtipoj estas subtenataj de Golang?
Golang uzas la sekvajn tipojn:
- telefono
- Bulea
- Numera
- ĉeno
- Puntero
- funkcio
- interfaco
- tranĉaĵo
- Strukturo
- mapo
- kanalo
- tabelo
9. Kion vi celas per statika tipa deklaro de variablo en Golang?
La kompililo povas daŭrigi kun alia kompilo sen bezoni havi ampleksan informon pri la variablo danke al statikaspecaj variablodeklaroj, kiuj certigas ĝin, ke ekzistas nur unu variablo kun la donita speco kaj nomo.
Variebla deklaro estas nur grava dum kompilo; la kompililo postulas realan variablon kaj deklaron kiam li konektas al la aplikaĵo.
10. En Golang, kio estas la dinamika varia deklaro?
La kompililo devas klarigi la specon de variablo en dinamika speco de varia deklaro bazita sur la kvanto transdonita al ĝi. Kiel postulata kondiĉo, la kompililo ne postulas variablon kategoriigi statike.
11. Kiel mi povas uzi kutimajn pakaĵojn en la programlingvo GO?
Se vi kreas apartan projekton go get -table por via biblioteko kaj ĝi estas nur por interna uzado, vi povas skribi kodon tiel.
- Metu la dosierujon de bibliotekaj dosieroj sub la dosierujon de via projekto.
- Raportu la bibliotekon per ĝia vojo rilate al la radiko de la laborspaco kiu enhavas la projekton.
12. Kio ĝuste estas gorutino? Kiel vi povas ĉesigi ĝin?
Gorutino estas funkcio aŭ proceduro kiu funkcias samtempe kun aliaj gorutinoj sur dediĉita goroutinfadeno. Goroutine-fadenoj estas pli malpezaj ol ordinaraj fadenoj, kaj la plej multaj Golang-aplikoj uzas milojn da goroutinoj samtempe.
Gorutino povas esti maldaŭrigita preterpasante al ĝi signalkanalon. Goroutines nur povas respondi al signaloj se ili estas direktitaj por kontroli, tial inkluzivu ĉekojn ĉe raciaj lokoj kiel la supro de via for buklo.
13. Priskribu runon.
En Go, runo estas enkonstruita tipo kun la nomo int32. La Unikoda CodePoint funkcias kiel la runo en Go. Ne gravas kiom da bajtoj la kodpunkto okupas, ĝi povas esti reprezentita per runo.
Runoj ne devas esti en ordo en ŝnuro. Kvankam ni povas konverti inter ŝnuro kaj runo, ili ne estas la samaj.
14. Kio estas la Go-idiomo por reprezenti enumojn?
La Golang programlingvo ne rekte subtenas enumojn. Iota kaj konstantoj povas esti uzataj por efektivigi enumojn. Ajna el la sekvaj aliroj povas esti uzata por efektivigi listigitan tipon:
- enkondukante freŝan entjerspecon
- Iota estas uzata por indiki sian valoron.
- Provizante String-funkcion al la tipo
15. Kiel la tipo de variablo estas kontrolita ĉe rultempo?
La Tipo Ŝaltilo estas la plej efika aliro por determini la tipon de variablo en reala tempo. Variabloj estas taksitaj laŭ tipo prefere ol valoro kiam oni uzas la Tipo-Ŝaltilon.
Ambaŭ defaŭlta kazo, kiu estas efektivigita se neniu el la kazoj estas vera kaj almenaŭ unu kazo, kiu funkcias kiel kondiĉa deklaro, ĉeestas en ĉiu Ŝaltilo. Vi povas, ekzemple, desegni Tipo-Ŝaltilon, kiu determinas ĉu la interfaca valoro, kiun mi inkluzivas estas la tipo int aŭ ĉeno:
16. Priskribu Go-kanalojn.
Go-kanalo ebligas transdonon de datumoj kaj translokigon inter gorutinoj. Datumoj de la sama tipo povas esti senditaj tra unu kanalo.
Goroutines povas sendi kaj ricevi datenojn super la sama kanalo pro la dudirekta datenfluo de la kanalo.
17. Klarigu Golang-Metodojn.
Golang ne disponigas klasojn sed subtenas metodojn. Tiuj metodoj estas identaj al funkcioj, kun la escepto ke Go-metodoj havas riceviloparametron.
La Go-metodo havas aliron al la atributoj de la ricevilo per la ricevilaj parametroj. Go-metodoj, ankaŭ konataj kiel ricevilaj funkcioj, helpas prezenti pli precizan kaj realan ideon.
18. Kio ĝuste estas datumvetkuro?
La plej ofta kaj malfacila sencimigo estas datumkuro. Nesinkronigita aliro al komuna memoro aŭ la ekzekuto de pluraj gorutinoj samtempe sen aparta pritraktado rezultigas datumvetkuran misfunkciadon.
19. Kio precize estas Go-rubkolekto?
Rubkolekto reuzas stokadon, kiu estis dinamike asignita al programo por uzado de aliaj objektoj. La vorto ofte rilatas al la aŭtomatigita regenerado de la rubkolektanto por rutina stokado prefere ol eksplicita kodo (liverita fare de programisto) por liberigi specialajn memorblokojn.
Aŭtomata rubkolekto estas ofte komencita kiam la kvanto de libera RAM falas sub antaŭdifinita sojlo aŭ post difinita nombro da asignoj.
La elimino de eroj, kiujn la programaro ne plu postulas por krei lokon en memoro por pli dinamikaj objektoj, estas nomata "rubokolekto".
20. Priskribu la stadiojn de testado uzante Golang.
Golang disponigas aŭtomatigitan testadon de pakaĵoj per kutimaj testaj serioj. Por establi novan aron, kreu dosieron, kiu finiĝas per _test.go kaj inkluzivas funkcion TestXxx, kie Xxx estas anstataŭigita per la nomo de la funkcio, kiun vi testas.
Funkcio kiu testas ensalutkapablojn, ekzemple, estus nomita TestLogin. La prova serio estas tiam inkluzivita en la sama pakaĵo kiel la testata dosiero.
La testdosiero estos preterlasita dum ordinara ekzekuto sed ruliĝos kiam vi enigas la go-testan komandon.
21. Kio ĝuste estas tranĉaĵoj en Go?
Tranĉaĵoj estas grava Go-datumtipo, kiu provizas pli potencan interfacon por sekvencoj ol tabeloj. Tranĉaĵoj, male al tabeloj, estas nur tajpitaj depende de la elementoj kiujn ili enhavas (ne la nombro da elementoj).
Por konstrui malplenan tranĉaĵon kun longo ne nulo, uzu la enkonstruitan "krei" ŝlosilvorton.
22. Kio ĝuste estas amasmemoro?
Ni stokas dinamike formitajn objektojn kaj variablojn en amasmemoro. Kiam ni ne plu uzas objekton, ni kutime forigas la amasmemoron, kiun ĝi okupis.
23. Kio ekzakte estas funkcio fermoj?
Funkciferoj estas speco de funkciovaloro kiu faras ekstere referenceitajn variablojn. La funkcio havas aliron kaj kontrolon de la valoroj de la referencaj variabloj.
Kiel ilustraĵo, la fermo resendita de aldonanto () estas ĉiu ligita al malsama referencita sumvariablo.
24. Kion signifas la goto-deklaro de Golang?
La goto-deklaro funkcias kiel salto-deklaro en Golang. Goto kutimas provizi specifitan etikedkontrolon super la programo.
Ĝi povas esti uzata por transsalti partojn de kodo kaj iri rekte al la necesaj deklaroj, aŭ ĝi povas esti uzata por ripeti parton de programkodo laŭ certa cirkonstanco.
25. En Golang, kio estas Lvaloro kaj Rvaloro?
Lvaloro:
- Ĝi aludas al memorloko.
- Ĝi povas esti ŝanĝita.
- Ĝi indikas varian identigilon.
- Ĝi povus okazi maldekstre aŭ dekstre de la operatoro =.
- En la linio x =20, ekzemple, x estas lvaloro kaj 20 estas rvaloro.
Rvaloro:
- Ĝi signifas fiksan valoron.
- Ĝi reprezentas memor-stokitan datenvaloron.
- Ĝi ĉiam okazas ĉe la dekstra flanko de la = operatoro.
- La esprimo 10 = 20 estas malĝusta, ekzemple, ĉar ekzistas rvaloro (10) maldekstre de la operatoro =.
26. En Go, kio estas la loopkonstruaĵoj?
Estas nur unu buklo-komponento en Go: la buklo por. La for-buklo konsistas el tri partoj kiuj estas apartigitaj per punktokomoj:
- La Init deklaro estas rulita antaŭ ol la buklo komenciĝas. Ĝi estas ofte varia deklaro, kiu nur aperas en la amplekso de la buklo por.
- Antaŭ ĉiu ripeto, la kondiĉa deklaro estas taksita kiel Bulea por decidi ĉu la buklo devus daŭri.
- La poŝta deklaro estas rulita ĉe la konkludo de ĉiu ripeto.
27. Kio ĝuste estas dezajnaj ŝablonoj?
Dezajnaj ŝablonoj estas pecoj de kodo, kiuj povas esti reuzitaj por trakti oftajn programojn. Se vi uzas desegnajn ŝablonojn, viaj projektoj generos pli modulan, skaleblan kaj efikan programaron. Dezajnaj ŝablonoj helpas vin vastigi viajn programojn kaj labori kun teamo. Oftaj dezajnopadronoj inkludas la Fabrikan Metodon, Singleton, Fasadon kaj Decorator.
28. Kio estas la plej bona Golang-pakaĵo por simplaj dosiero-operacioj? Kiuj pliaj Golang-pakaĵoj estas uzataj por dosiermanipulado?
La platform-sendependa interfaco estas disponigita per la os-norma bibliotekpakaĵo. Interagante kun dosieroj, ni uzas ilin por sistemaj funkcioj. La os-interfaco estas intencita esti konsekvenca tra ĉiuj operaciumoj.
Kiel rezulto, la programoj, kiujn ni evoluigas, funkcias same en Vindozo, Linukso kaj Mac. Aliaj normaj bibliotekpakaĵoj de Go inkluzivas io, ioutil kaj bufio. Ili funkcias kun dosieroj kaj aldonas funkciojn. Tamen, ili ne estas postulataj por fundamentaj dosieroperacioj. Ni postulas nur la os-pakaĵon.
29. Donu klarigon pri Objekt-Orientita Arkitekturo de Golang.
Golang ne utiligas klasobjektan dezajnon kiel konvencian Objekta Programado faras. Kompleksaj datenstrukturoj kaj konduto estas anstataŭe stokitaj en strukturoj kaj metodoj.
Strukturo estas nur skemo kun skizo por la datumoj kiujn strukturo portos. Strukturoj povas esti uzitaj por simboli ideojn de la fakta mondo, kiel ekzemple libroj, homoj aŭ aŭtoj.
30. Kiujn konvertajn tipojn Golang subtenas?
Kiam temas pri eksplicita tajpado, Go estas tre elektema. Neniu tipo konvertiĝo estas farita aŭtomate. Por indiki variablon de unu tipo al alia, tipkonverto devas esti farita eksplicite.
31. Priskribu la celon kaj operacion de Tipa aserto.
En GO, tipkonverto estas uzata por transformi malsimilajn tipojn. Eksplicita valoro de la specifita tipo estas ĉerpita de interfaca valoro per tipaserto.
32. Kio ĝuste estas struktur-tipo?
Strukturo konsistas el listo de nomitaj komponantoj nomataj kampoj. Estas speco kaj nomo por ĉiu kampo. Alia maniero koncepti strukturon estas kiel grupo de ligitaj trajtoj. Ili estas helpemaj por kombini datumojn por krei rekordojn.
33. Klarigu la subtenan tabelon de tranĉaĵvaloro.
Kiam ni konstruas tranĉaĵon, Go produktas sekretan tabelon nomatan subtena aŭ suba tabelo malantaŭ la scenoj, kaj la nova tranĉaĵospeca variablo referencoj al ĝi. La eroj, ne la tranĉaĵo, estas konservitaj en la subtena tabelo.
Tranĉaĵoj estas efektivigitaj en Go kiel datumstrukturoj nomitaj tranĉaĵkapoj, kiuj funkcias kiel la rultempa reprezentado de la tranĉaĵo.
34. Ĉu necesas havi ambaŭ variablojn GOPATH kaj GOROOT, kaj se jes, kial?
Kutime, nek estas necesa. La sola variablo, kiu devas esti agordita por montri al la pakaĵarbo aŭ arboj de Go, estas GOPATH.
GOROOT rilatas al la radiko de la hejma dosierujo por la programlingvo Go, tamen ĝi preskaŭ certe jam estas agordita al la loko de la aktuala Go-instalaĵo.
Se ekzistas multaj Go-lingvaj versioj sur la sama sistemo, aŭ se la Go-lingvo estis elŝutita kiel binara pakaĵo de la interreto aŭ movita de alia maŝino, la GOROOT-variablo devas esti agordita.
35. Ĉu Golang ebligas heredon?
Heredo estas baza nocio en objekt-orientita programado kiu rilatas al transdono de la trajtoj de la superklaso al la baza klaso.
Ĉar al Golang mankas klasoj, heredo estas plenumita uzante struct-enkonstruadon kaj structs ne povas esti rekte vastigitaj, ni devas uzi la ideon de kunmetaĵo por krei novajn objektojn kun la struct.
36. En Golang, kiel aperas CGo?
El fontdosiero de Go kun difinitaj funkcioj, cGo kreas dosierojn Go kaj C, kiuj povas esti kunligitaj en unikan Go-pakaĵon. C rilatas al "pseŭdo-pakaĵo", kiu estas malsama frazo generita de cGo por rilati al la nomspaco de C.
37. Kio estas la montrilo-tipo en Golang?
Alfanumeraj nomoj aŭ etikedoj por certaj memorregionoj estas konataj kiel variabloj. Speco de variablo konata kiel montrilo stokas la memoradreson de alia variablo.
La adreso de variablo estas reprezentita per montra valoro, aŭ nil se la variablo ankoraŭ ne estis establita. Same kiel variablo reprezentas la memorlokon de valoro, montrilo montras al tiu adreso.
konkludo
La celo de la Golang programlingvo estis krei efikajn programojn pli rapide. Firmaoj komencis utiligi Golang kiam ili komencis realigi ĝiajn avantaĝajn eblecojn.
Golang estis ekstreme efika por ŝalti la intereson de programistoj, pliigante ilian bazan uzon kaj, sekve, laborŝancojn. La respondoj al la menciitaj demandoj, kiuj estas la plej oftaj demanditaj dum Golang-intervjuoj, povas helpi vin akiri la Golang-laboron, kiun vi serĉas.
Vidu La Intervjuserio de Hashdork por helpo pri preparado de intervjuo.
Lasi Respondon