Junior — Middle
Wer entscheidet, ob ein Objekt im Speicher platziert werden darf?
sobes.tech KI
Antwort von AI
Die Speicherzuweisung von Objekten in Go (Golang) wird vom Compiler und der Laufzeitumgebung bestimmt.
- Der Compiler entscheidet, wo die Variable platziert wird: im Stack oder im Heap, basierend auf der Analyse ihres Gültigkeitsbereichs und ihrer Lebensdauer (Escape-Analyse).
- Wenn die Variable aus der Funktion «entkommt» (z.B. zurückgegeben wird oder nach dem Verlassen der Funktion verwendet wird), wird sie im Heap platziert.
- Andernfalls im Stack, was schneller ist.
Daher trifft der Compiler die Entscheidung, ein Objekt im Speicher zu platzieren, während der Kompilierungsphase, und die Laufzeit verwaltet die Zuweisung und Müllsammlung für Objekte im Heap.