Go

Go-Datenstrukturen

Arrays, Slices, Maps, Structs, Pointer, make vs new, nil-Werte

20 Interview-Fragen·
Junior
1

Was ist ein Slice in Go?

Antwort

Ein Slice ist eine dynamische Sicht auf ein zugrunde liegendes Array, die das Bearbeiten von Element-Sequenzen variabler Länge ermöglicht. Im Gegensatz zu Arrays, die eine zur Compile-Zeit festgelegte feste Größe haben, können Slices durch Operationen wie append dynamisch wachsen oder schrumpfen. Diese Flexibilität macht sie zur am häufigsten verwendeten sequenziellen Datenstruktur in Go, um Sammlungen homogener Elemente zu speichern.

2

Was ist der Hauptunterschied zwischen einem Array und einem Slice in Go?

Antwort

Der grundlegende Unterschied liegt in der Größe: Ein Array hat eine zur Compile-Zeit festgelegte feste Größe und ist Teil des Typs selbst, während ein Slice eine dynamische Größe hat, die sich zur Laufzeit ändern kann. Diese Unterscheidung bedeutet, dass zwei Arrays unterschiedlicher Größe als inkompatible Typen gelten, während alle Slices desselben Elementtyps kompatibel sind. Slices sind daher flexibler und werden in modernem Go-Code häufiger verwendet.

3

Wie erstellt man einen leeren Slice in Go?

Antwort

Die Literal-Syntax mit leeren eckigen Klammern gefolgt von leeren geschweiften Klammern ist die idiomatische Art, einen initialisierten leeren Slice zu erstellen. Dieser Ansatz erzeugt einen Slice der Länge 0, aber nicht nil, bereit, Elemente per append aufzunehmen. Anders als eine einfache Deklaration, die einen nil-Slice ergeben würde, garantiert diese explizite Initialisierung einen sofort nutzbaren Slice ohne Risiko unerwarteten Verhaltens beim Hinzufügen von Elementen.

4

Welche Funktion sollte verwendet werden, um einen Slice mit einer bestimmten Kapazität zu initialisieren?

5

Was passiert, wenn ein Element zu einem Slice hinzugefügt wird, dessen Kapazität erreicht ist?

+17 Interview-Fragen

Meistere Go für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten