Junior — Middle
Jakie informacje zwraca funkcja len podczas przetwarzania łańcucha?
sobes.tech AI
Odpowiedź od AI
W języku Go funkcja len stosowana do łańcucha zwraca liczbę bajtów w tym łańcuchu, a nie liczbę znaków (rune).
Jest to związane z tym, że łańcuchy w Go są przechowywane w formacie UTF-8, gdzie jeden znak może zajmować od 1 do 4 bajtów. Dlatego len zwraca długość w bajtach.
Przykład:
package main
import (
"fmt"
)
func main() {
s := "Привет" // słowo po rosyjsku
fmt.Println(len(s)) // Wyświetli liczbę bajtów, np. 12
}
Jeśli chcesz uzyskać liczbę znaków (rune), musisz przekonwertować łańcuch na slice rune:
runes := []rune(s)
fmt.Println(len(runes)) // Wyświetli liczbę znaków, np. 6
Zatem len dla łańcucha to długość w bajtach, a nie w znakach.