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
lenimmer gleich der Größe des Arrays und ändert sich nicht. - Für ein Slice zeigt
lendie 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.