Sobes.tech
Junior — Middle

Kann man eine Leseoperation aus einem Slice durchführen, der vorher nicht initialisiert wurde?

sobes.tech KI

Antwort von AI

In Go sind Slices Strukturen, die einen Zeiger auf ein Array, eine Länge und eine Kapazität enthalten. Wenn ein Slice nicht initialisiert wurde (d.h., es ist nil), führt ein Versuch, daraus zu lesen, zu einem Panic.

Zum Beispiel:

var s []int // nil-Slice
fmt.Println(s[0]) // Panic: Laufzeitfehler: Index außerhalb des Bereichs

Um sicher aus einem Slice zu lesen, muss es initialisiert werden, z.B. mit make oder durch Zuweisung eines bestehenden Arrays:

s := make([]int, 3)
fmt.Println(s[0]) // 0, sicher

Daher ist es nicht möglich, aus einem nicht initialisierten Slice zu lesen — dies führt zu einem Laufzeitfehler.