Sobes.tech
Junior — Middle

Каква информация връща функцията len при обработка на низ?

sobes.tech AI

Отговор от AI

В езика Go, функцията len, при прилагане към низ, връща броя на байтовете в този низ, а не броя на символите (runes).

Това се дължи на факта, че низовете в Go се съхраняват във формат UTF-8, където един символ може да заема от 1 до 4 байта. Затова len връща дължината в байтове.

Пример:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // руската дума
    fmt.Println(len(s)) // Ще покаже броя на байтовете, например 12
}

Ако искате да получите броя на символите (runes), трябва да преобразувате низът в срез от руни:

runes := []rune(s)
fmt.Println(len(runes)) // Ще покаже броя на символите, например 6

Следователно, len за низ е дължината в байтове, а не в символи.