Indholdsfortegnelse[Skjule][At vise]
- 1. Beskriv Golang.
- 2. Hvilke fordele har Go i forhold til andre sprog?
- 3. Hvad er fmt i Golang-programmering?
- 4. Hvad er Go Interfaces helt præcist?
- 5. Hvad er strenge bogstaver?
- 6. Hvordan er arbejdsmiljøer og parametre konfigureret i Golang?
- 7. Beskriv Golang-pakkerne?
- 8. Hvilke datatyper understøttes af Golang?
- 9. Hvad mener du med statisk typeerklæring af en variabel i Golang?
- 10. Hvad er den dynamiske variabeldeklaration i Golang?
- 11. Hvordan kan jeg bruge brugerdefinerede pakker i GO programmeringssproget?
- 12. Hvad er en goroutine egentlig? Hvordan kan du sætte en stopper for det?
- 13. Beskriv en rune.
- 14. Hvad er Go-idiomet for at repræsentere enums?
- 15. Hvordan bliver en variabels type kontrolleret under kørsel?
- 16. Beskriv Go-kanaler.
- 17. Forklar Golang-metoder.
- 18. Hvad er et dataræs egentlig?
- 19. Hvad er Go garbage collection egentlig?
- 20. Beskriv stadierne af test med Golang.
- 21. Hvad er skiver helt præcist i Go?
- 22. Hvad er heap memory?
- 23. Hvad er funktionslukninger helt præcist?
- 24. Hvad betyder Golangs goto-udsagn?
- 25. Hvad er Lværdi og Rværdi i Golang?
- 26. Hvad er looping-konstruktionerne i Go?
- 27. Hvad er designmønstre egentlig?
- 28. Hvad er den bedste Golang-pakke til simple filhandlinger? Hvilke yderligere Golang-pakker bruges til filmanipulation?
- 29. Giv en forklaring på Golangs objektorienterede arkitektur.
- 30. Hvilke konverteringstyper understøtter Golang?
- 31. Beskriv formålet med og driften af Typepåstanden.
- 32. Hvad er egentlig en struct-type?
- 33. Forklar en udsnitsværdis backing-array.
- 34. Er det nødvendigt at have både GOPATH- og GOROOT-variabler, og hvis ja, hvorfor?
- 35. Muliggør Golang arv?
- 36. Hvordan ser CGo ud i Golang?
- 37. Hvad er pointertypen i Golang?
- Konklusion
Go-programmeringssproget, ofte kendt som Golang, er et open source-programmeringssprog, der kan sammenlignes med C, men er designet til hurtig kompilering, jævn samtidighed og bekvemmelighed for udviklere.
Dette sprog blev udviklet og brugt af Google, men det har vundet indpas i andre virksomheder i de senere år, efterhånden som efterspørgslen efter samtidig netværksprogrammering er vokset.
Golang gør udvikling lettere for udviklere ved at tilbyde optimal kompilering til hurtig udvikling af softwareapplikationer, jævnere samtidighed, forbedret runtime-effektivitet og færre defekter.
Golang er hurtigt ved at blive et populært programmeringssprog for virksomheder, med flere beskæftigelsesmuligheder. Mange it-giganter, som Google, Uber og Apple, elsker Golang for dets kortere udviklingstid, lette læring, forbedrede køretid, affaldsindsamling og andre fordele.
Efterhånden som flere virksomheder bruger Golang, vokser behovet for Golang-programmører. Bundlinjen? At lære Golang ville give flere beskæftigelsesmuligheder.
Hvis du vil arbejde som Golang-udvikler, skal du forberede dig tilstrækkeligt til dit interview. Derfor har vi samlet denne omfattende samling af Golang-interviewspørgsmål.
I dette indlæg vil vi præsentere grundlæggende til avancerede Golang-interviewspørgsmål, så du nemt kan komme igennem interviewet.
1. Beskriv Golang.
Go er et generelt formål på højt niveau programmeringssprog der understøtter affaldsopsamling og samtidig programmering og er meget stramt og statisk skrevet. Go-applikationer oprettes ved at bruge pakker, som giver effektiv afhængighedsstyring.
Derudover udnytter det kompileringslink-tilgangen til at skabe eksekverbare binære filer fra kildekoden. Go er et ligetil sprog med smukke og klare syntaktiske strukturer.
Det leveres med et sæt stærke standardbiblioteker, der kan bruges af udviklere til at løse problemer uden krav om andre pakker.
2. Hvilke fordele har Go i forhold til andre sprog?
- Go-koden blev udviklet med praktiske tanker i modsætning til andre sprog, der begyndte som intellektuelle eksperimenter. Ethvert valg i syntaks og funktion er lavet med programmørens bekvemmelighed i tankerne.
- Da automatisk affaldsindsamling kører samtidig med applikationen, er den langt mere effektiv end Java eller Python.
- Skalerbarhed og samtidighed er begge prioriteret i Golang.
- Golang anses normalt for at være mere forståeligt end andre sprog, da det har en enkelt, standardiseret kodestruktur.
3. Hvad er fmt i Golang-programmering?
Formatpakken er angivet med symbolet fmt. Brugere kan bruge denne funktionalitet til at formatere grundlæggende tekst, værdier eller noget andet og udskrive det.
Det giver også brugere mulighed for at modtage terminalinput, skrive til en fil med en forfatter og endda bygge skræddersyede fancy fejlmeddelelser. Denne pakke handler om formatering af input og output.
4. Hvad er Go Interfaces helt præcist?
Grænsefladerne i Go adskiller sig fra dem på andre sprog. Go-grænseflader er en speciel type, der bruges til at udtrykke en samling af en eller flere metodesignaturer.
Grænsefladen er dannet ved at bruge udtrykket "type", efterfulgt af navnet og nøgleordsgrænsefladen. Grænsefladerne kan defineres som følger:
- en samling af metoder
- Type
5. Hvad er strenge bogstaver?
En strengliteral er en strengkonstant fremstillet ved at sammenkæde bogstaver. Rå og fortolkede strengliteraler er de to typer strengliteraler. Rå strenge bogstaver er omgivet af backticks (foo) og indeholder ufortolkede UTF-8-tegn.
Fortolkede strenge bogstaver er strenge skrevet inden for dobbelte anførselstegn og inklusive et hvilket som helst tegn undtagen nylinje og ufuldstændige dobbelte anførselstegn.
6. Hvordan er arbejdsmiljøer og parametre konfigureret i Golang?
Arbejdsmiljøer og indstillinger kan konfigureres ved hjælp af JSON, som er meget udbredt i disse dage. Det faktum, at JSON er inkluderet i standardbiblioteket, er dens største fordel.
Standardbiblioteket giver skrivemetoder til de tilsigtede datastruktur, hvilket gør den meget læsbar. YAML-pakken til Go er et ekstra valg.
7. Beskriv Golang-pakkerne?
Pakker er mapper, der rummer andre pakker og deres kildekode i Go-arbejdsområdet. De sammenkædede pakker inkluderer al den kode, inklusive variabler, funktioner og typer, der er skrevet i kildefilerne.
Hver kildefil er en del af en pakke, og go-pakker kan også gemmes i pakker.
8. Hvilke datatyper understøttes af Golang?
Golang gør brug af følgende typer:
- Metode
- Boolesk
- Numerisk
- String
- Pointer
- Funktion
- grænseflade
- Slice
- Struktur
- Kort
- Kanal
- Array
9. Hvad mener du med statisk typeerklæring af en variabel i Golang?
Compileren kan fortsætte med en anden kompilering uden at skulle have omfattende information om variablen takket være statiske type variabeldeklarationer, som forsikrer den om, at der kun er én variabel med den givne type og navn.
En variabel erklæring er kun vigtig under kompilering; compileren kræver en reel variabel og erklæring, når der oprettes forbindelse til applikationen.
10. Hvad er den dynamiske variabeldeklaration i Golang?
Compileren skal forklare typen af variabel i en dynamisk type variabeldeklaration baseret på det beløb, der overføres til den. Som en påkrævet betingelse kræver compileren ikke en variabel for at kategorisere statisk.
11. Hvordan kan jeg bruge brugerdefinerede pakker i GO programmeringssproget?
Hvis du opretter et separat go get -table-projekt til dit bibliotek, og det kun er til intern brug, kan du skrive kode som denne.
- Placer biblioteksfilbiblioteket under dit projekts bibliotek.
- Henvis til biblioteket ved dets sti i forhold til roden af det arbejdsområde, der indeholder projektet.
12. Hvad er en goroutine egentlig? Hvordan kan du sætte en stopper for det?
En goroutine er en funktion eller procedure, der kører samtidigt med andre goroutiner på en dedikeret goroutine-tråd. Goroutine-tråde er lettere end almindelige tråde, og de fleste Golang-applikationer bruger tusindvis af goroutiner samtidigt.
En goroutine kan stoppes ved at sende den en signalkanal. Goroutiner kan kun reagere på signaler, hvis de er rettet til at tjekke, inkluder derfor kontroller på rimelige steder som toppen af din for loop.
13. Beskriv en rune.
I Go er en rune en indbygget type med navnet int32. Unicode CodePoint fungerer som runen i Go. Uanset hvor mange bytes kodepunktet fylder, kan det repræsenteres af en rune.
Runer er ikke forpligtet til at være i orden i en streng. Selvom vi kan konvertere mellem streng og rune, er de ikke ens.
14. Hvad er Go-idiomet for at repræsentere enums?
Golang-programmeringssproget understøtter ikke direkte enums. Iota og konstanter kan bruges til at implementere enums. Enhver af følgende tilgange kan bruges til at implementere en opregnet type:
- introduktion af en ny heltalstype
- Iota bruges til at angive dens værdi.
- Ved at give en String-funktion til typen
15. Hvordan bliver en variabels type kontrolleret under kørsel?
Typekontakten er den mest effektive tilgang til at bestemme en variabels type i realtid. Variabler evalueres efter type snarere end værdi, når du bruger Type Switch.
Både en standardsag, som udføres, hvis ingen af sagerne er sande, og mindst én sag, der fungerer som en betinget erklæring, er til stede i hver switch. Du kan for eksempel designe en Type Switch, der bestemmer, om grænsefladeværdien, jeg inkluderer, er typen int eller streng:
16. Beskriv Go-kanaler.
En go-kanal muliggør datatransmission og overførsel mellem goroutiner. Data af samme type kan sendes over én kanal.
Goroutiner er i stand til at sende og modtage data over den samme kanal på grund af kanalens tovejsdataflow.
17. Forklar Golang-metoder.
Golang tilbyder ikke klasser, men understøtter metoder. Disse metoder er identiske med funktioner, med undtagelse af at Go-metoder har en modtagerparameter.
Go-metoden har adgang til modtagerens attributter via modtagerparametrene. Go-metoder, også kendt som modtagerfunktioner, hjælper med at præsentere en mere nøjagtig og virkelighedsnær idé.
18. Hvad er et dataræs egentlig?
Den mest almindelige og svære fejlretning er et dataræs. Usynkroniseret adgang til delt hukommelse eller udførelse af flere goroutiner på samme tid uden separat håndtering resulterer i en datarace-fejl.
19. Hvad er Go garbage collection egentlig?
Skraldesamling genbruger lager, der er blevet dynamisk tildelt et program til brug af andre objekter. Ordet refererer ofte til affaldsindsamlerens automatiserede regenerering til rutinemæssig opbevaring snarere end eksplicit kode (leveret af en programmør) for at frigive bestemte hukommelsesblokke.
Automatisk affaldsindsamling påbegyndes ofte, når mængden af ledig RAM falder under en foruddefineret tærskel eller efter et specificeret antal tildelinger.
Elimineringen af genstande, som softwaren ikke længere kræver for at skabe et sted i hukommelsen til mere dynamiske objekter, kaldes "affaldsindsamling."
20. Beskriv stadierne af test med Golang.
Golang leverer automatisk test af pakker ved hjælp af brugerdefinerede testpakker. For at etablere en ny suite skal du oprette en fil, der slutter med _test.go og inkluderer en TestXxx-funktion, hvor Xxx erstattes med navnet på den funktion, du tester.
En funktion, der tester login-funktioner, vil f.eks. hedde TestLogin. Testpakkefilen er derefter inkluderet i den samme pakke som den fil, der testes.
Testfilen vil blive sprunget over under almindelig udførelse, men vil køre, når du indtaster go test-kommandoen.
21. Hvad er skiver helt præcist i Go?
Udsnit er en vigtig Go-datatype, der giver en mere kraftfuld grænseflade til sekvenser end arrays. Udsnit, i modsætning til arrays, skrives udelukkende afhængigt af de elementer, de indeholder (ikke antallet af elementer).
For at konstruere en tom skive med en længde, der ikke er nul, skal du bruge det indbyggede "make" nøgleord.
22. Hvad er heap memory?
Vi gemmer dynamisk dannede objekter og variabler i heap-hukommelsen. Når vi ikke længere bruger et objekt, sletter vi normalt den heap-hukommelse, det optog.
23. Hvad er funktionslukninger helt præcist?
Funktionslukninger er en type funktionsværdi, der laver eksternt refererede variabler. Funktionen har adgang til og kontrol over de refererede variables værdier.
Som en illustration er lukningen returneret af en adder() hver bundet til en forskellig refereret sumvariabel.
24. Hvad betyder Golangs goto-udsagn?
Goto-sætningen fungerer som en jump-sætning i Golang. Goto er vant til at give en specificeret etiketkontrol over programmet.
Den kan bruges til at springe over dele af koden og gå direkte til de nødvendige udsagn, eller den kan bruges til at gentage en del af programkoden under en bestemt omstændighed.
25. Hvad er Lværdi og Rværdi i Golang?
Lværdi:
- Det hentyder til et mindested.
- Det kan ændres.
- Det angiver en variabel identifikator.
- Det kan forekomme til venstre eller højre for =-operatoren.
- I linjen x =20, for eksempel, er x en lværdi og 20 er en rværdi.
Rværdi:
- Det betyder en fast værdi.
- Det repræsenterer en hukommelses-lagret dataværdi.
- Det forekommer altid på højre side af = operatoren.
- Udtrykket 10 = 20 er forkert, for eksempel, da der er en rværdi (10) til venstre for operatoren =.
26. Hvad er looping-konstruktionerne i Go?
Der er kun én looping-komponent i Go: for-løkken. For-løkken består af tre dele, der er adskilt af semikolon:
- Init-sætningen køres før løkken begynder. Det er ofte en variabel erklæring, der kun vises inden for rammerne af for-løkken.
- Før hver iteration evalueres betingelsessætningen som en Boolean for at beslutte, om løkken skal fortsætte.
- Post-erklæringen køres ved afslutningen af hver iteration.
27. Hvad er designmønstre egentlig?
Designmønstre er bidder af kode, der kan genbruges til at tackle almindelige softwareproblemer. Hvis du bruger designmønstre, vil dine projekter generere mere modulær, skalerbar og effektiv software. Designmønstre hjælper dig med at udvide dine apps og arbejde med et team. Almindelige designmønstre inkluderer Factory Method, Singleton, Facade og Decorator.
28. Hvad er den bedste Golang-pakke til simple filhandlinger? Hvilke yderligere Golang-pakker bruges til filmanipulation?
Den platformsuafhængige grænseflade leveres af os standardbibliotekspakken. Når vi interagerer med filer, bruger vi dem til systemfunktioner. OS-grænsefladen er beregnet til at være konsistent på tværs af alle operativsystemer.
Som følge heraf kører de apps, vi udvikler, det samme på Windows, Linux og Mac. Andre Go-standardbibliotekspakker inkluderer io, ioutil og bufio. De arbejder med filer og tilføjer funktionalitet. De er dog ikke nødvendige for grundlæggende filoperationer. Vi kræver kun os-pakken.
29. Giv en forklaring på Golangs objektorienterede arkitektur.
Golang bruger ikke et klasseobjektdesign som konventionelt Objektorienteret programmering gør. Komplekse datastrukturer og adfærd lagres i stedet i strukturer og metoder.
En struct er blot et skema med en blueprint for de data, som en struktur vil bære. Strukturer kan bruges til at symbolisere ideer fra den faktiske verden, såsom bøger, mennesker eller biler.
30. Hvilke konverteringstyper understøtter Golang?
Når det kommer til eksplicit skrivning, er Go meget kræsen. Ingen typekonvertering udføres automatisk. For at udpege en variabel af en type til en anden, skal typekonvertering udføres eksplicit.
31. Beskriv formålet med og driften af Typepåstanden.
I GO bruges typekonvertering til at transformere forskellige typer. En eksplicit værdi af den angivne type ekstraheres fra en grænsefladeværdi ved en typepåstand.
32. Hvad er egentlig en struct-type?
En struct består af en liste over navngivne komponenter kaldet felter. Der er en slags og et navn for hvert felt. En anden måde at opfatte en struktur på er som en gruppe af forbundne egenskaber. De er nyttige til at kombinere data for at oprette poster.
33. Forklar en udsnitsværdis backing-array.
Når vi bygger et udsnit, producerer Go et hemmeligt array kaldet backing eller underliggende array bag kulisserne, og den nye skivetypevariabel refererer til det. Elementerne, ikke udsnittet, er gemt i backing-arrayet.
Udsnit er implementeret i Go som datastrukturer kaldet udsnitsoverskrifter, som fungerer som udsnitsrepræsentationen af udsnittet.
34. Er det nødvendigt at have både GOPATH- og GOROOT-variabler, og hvis ja, hvorfor?
Normalt er ingen af delene nødvendig. Den eneste variabel, der skal indstilles til at pege på Go-pakketræet eller -træerne, er GOPATH.
GOROOT refererer til roden af hjemmebiblioteket for Go-programmeringssproget, men det er næsten sikkert allerede indstillet til placeringen af den aktuelle Go-installation.
Hvis der er adskillige Go-sprogversioner på det samme system, eller hvis Go-sproget blev downloadet som en binær pakke fra internettet eller flyttet fra en anden maskine, skal GOROOT-variablen indstilles.
35. Muliggør Golang arv?
Arv er et grundlæggende begreb i objektorienteret programmering, der refererer til at videregive superklassens egenskaber til basisklassen.
Da Golang mangler klasser, udføres nedarvning ved hjælp af strukturindlejring, og strukturer kan ikke udvides direkte, vi skal bruge ideen om komposition til at skabe nye objekter med strukturen.
36. Hvordan ser CGo ud i Golang?
Fra en Go-kildefil med definerede funktioner opretter cGo Go- og C-filer, der kan sammenkædes til en unik Go-pakke. C refererer til en "pseudo-pakke", som er en anden sætning genereret af cGo for at referere til C's navneområde.
37. Hvad er pointertypen i Golang?
Alfanumeriske betegnelser eller etiketter for visse hukommelsesområder er kendt som variabler. En type variabel kendt som pointer gemmer hukommelsesadressen for en anden variabel.
Adressen på en variabel er repræsenteret af en pointerværdi, eller nul, hvis variablen endnu ikke er etableret. Ligesom en variabel repræsenterer en værdis hukommelsesplacering, peger en markør på den adresse.
Konklusion
Målet med programmeringssproget Golang var at skabe effektive programmer hurtigere. Virksomheder begyndte at bruge Golang, da de begyndte at indse dets fordelagtige muligheder.
Golang har været ekstremt effektiv til at tænde udviklernes interesse, øge deres basisbrug og dermed jobmuligheder. Svarene på de førnævnte spørgsmål, som er de mest almindelige, der stilles under Golang-samtaler, kan hjælpe dig med at få det Golang-job, du leder efter.
Se Hashdorks interviewserie for hjælp til samtaleforberedelse.
Giv en kommentar