Sobes.tech
Junior — Middle

Ist es möglich, dass eine Situation auftritt, in der die Variable len eine kürzere Länge anzeigt als die tatsächliche Größe des Arrays oder Slices?

sobes.tech KI

Antwort von AI

In Go spiegelt die Variable len für ein Array oder Slice immer die aktuelle Länge wider, die von der eingebauten Funktion len() zurückgegeben wird.

  • Für ein Array ist len immer gleich der Größe des Arrays und ändert sich nicht.
  • Für ein Slice zeigt len die Anzahl der Elemente im Slice, die kleiner oder gleich der Kapazität des Slices sein kann.

Die Situation, in der len kleiner als die tatsächliche Größe des Arrays ist, ist unmöglich, da len für ein Array fest ist und der Größe entspricht.

Für ein Slice kann die Länge kleiner als die Kapazität sein, aber nicht größer als die tatsächliche Anzahl der durch den Index zugänglichen Elemente.

Beispiel:

arr := [5]int{1,2,3,4,5}
fmt.Println(len(arr)) // 5

slice := arr[1:3]
fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4

Hier ist die Länge des Slices 2, obwohl die Kapazität 4 ist. Aber die Länge kann nicht größer sein als die tatsächliche Größe des Slices.