P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🦫

Junior Go-BackendGolang-Interviewfragen

Junior · keine Erfahrung / unter 1 Jahr

Go-Interviews drehen sich um Goroutines, Channels, Interfaces und Fehlerbehandlung — die Sprache ist klein, deshalb gehen die Fragen eher in die Tiefe als in die Breite. Hier sind die häufigsten mit Musterantworten. Junior: Grundlagentheorie, Definitionen und einfache Praxisfälle.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

Goroutines und der Scheduler
Channels und select
Interfaces und Komposition
Fehlerbehandlung
Slices und Maps
Context und Cancellation

7 Fragen auf Junior-Niveau mit Antworten

1

Was ist der Unterschied zwischen einem Array und einem Slice?

Antwort

Ein Array hat eine feste Länge, die Teil seines Typs ist — [3]int und [4]int sind verschiedene Typen. Ein Slice ist eine Sicht auf ein Array: ein Pointer, eine Länge und eine Kapazität. Slices verwendest du für fast alles; Arrays tauchen vor allem als der Backing Store auf, den du nie beim Namen nennst.

2

Was passiert, wenn du über die Kapazität eines Slice hinaus appendest?

Antwort

Go allokiert ein neues, größeres Backing-Array, kopiert die Elemente hinüber und gibt ein Slice zurück, das auf das neue zeigt. Das alte Slice zeigt weiter auf das alte Array — weshalb append einen Wert zurückgibt, den du zuweisen musst. Den Rückgabewert zu ignorieren ist der klassische Anfängerfehler, und er funktioniert genau so lange, bis die Kapazität überschritten wird.

3

Was ist der Zero Value, und warum hat Go einen?

Antwort

Jeder Typ hat einen nutzbaren Nullwert: 0 bei Zahlen, "" bei Strings, nil bei Pointern, Maps und Slices. Das bedeutet, eine deklarierte Variable ist immer initialisiert, sodass es keinen undefinierten Zustand gibt, den man versehentlich auslesen könnte. Die praktische Folge: Ein Struct mit sinnvollen Zero Values braucht oft überhaupt keinen Konstruktor.

4

Was ist der Unterschied zwischen einem Value Receiver und einem Pointer Receiver?

Antwort

Ein Value Receiver bekommt eine Kopie, Änderungen überleben den Aufruf also nicht; ein Pointer Receiver arbeitet mit dem Original. Einen Pointer nutzt du, wenn die Methode mutiert oder wenn das Struct groß genug ist, dass Kopieren etwas kostet. Verwirrung entsteht, wenn beide auf einem Typ gemischt werden, weil sich die Method Sets von T und *T dann unterscheiden.

5

Wie funktioniert Fehlerbehandlung, und warum gibt es keine Exceptions?

Antwort

Fehler sind gewöhnliche Werte, die zusammen mit dem Ergebnis zurückgegeben und an der Aufrufstelle geprüft werden. Das ist absichtlich ausführlich: Der Pfad, auf dem etwas fehlschlägt, ist im Code sichtbar statt in einem Stack Unwind versteckt. panic existiert für wirklich nicht behebbare Situationen, und es für Kontrollfluss zu missbrauchen ist ein Code Smell, den jeder Reviewer anmerken wird.

6

Was ist eine Goroutine, und wie unterscheidet sie sich von einem Thread?

Antwort

Eine Goroutine ist eine Funktion, die vom Go-Runtime geplant wird, nicht vom Betriebssystem. Sie startet bei wenigen Kilobyte und wächst, sodass Hunderttausende völlig normal sind, während dieselbe Anzahl OS-Threads es nicht wäre. Der Runtime multiplext sie auf einen kleinen Pool echter Threads.

7

Was macht `defer`, und wann läuft es?

Antwort

Es plant einen Aufruf für den Moment, in dem die umgebende Funktion zurückkehrt, egal auf welchem Weg. Das macht es zum richtigen Ort, um eine Datei zu schließen oder einen Mutex freizugeben, direkt neben der Zeile, die geöffnet oder gesperrt hat. Argumente werden bei der defer-Anweisung ausgewertet, nicht bei der Ausführung — was alle überrascht, die etwas mit einer Schleifenvariable deferren.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Junior Go-Backend-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — Go-Backend

Middle Go-BackendSenior Go-BackendAlle Go-Backend-Fragen

Weitere Spezialisierungen

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP-Backend🟢Junior Node.js-Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript⚛️Junior React Frontend