Junior — Middle
Welchen Wert gibt die Methode length zurück, wenn sie bei einem String aufgerufen wird?
sobes.tech KI
Antwort von AI
In Go gibt die Methode len, wenn sie bei einer Zeichenkette aufgerufen wird, die Anzahl der Bytes in der Zeichenkette zurück, nicht die Anzahl der Zeichen. Dies liegt daran, dass Zeichenketten in Go Sequenzen von Bytes im UTF-8-Format sind. Wenn die Zeichenkette nur ASCII-Zeichen enthält, stimmt die Anzahl der Bytes mit der Anzahl der Zeichen überein. Bei mehrsprachigen Zeichen kann jedes Zeichen jedoch mehrere Bytes beanspruchen.
Beispiel:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Gibt die Anzahl der Bytes aus, z.B. 12
}
Um die Anzahl der Zeichen (Runen) zu zählen, sollte die Funktion utf8.RuneCountInString aus dem Paket unicode/utf8 verwendet werden.