Sobes.tech
Junior — Middle

Каква стойност връща методът length при извикване на низ?

sobes.tech AI

Отговор от AI

В Go, методът len, когато се извика върху низ, връща броя на байтовете в низа, а не броя на символите. Това е така, защото низовете в Go са последователности от байтове, кодирани в UTF-8. Ако низът съдържа само ASCII символи, броят на байтовете съвпада с броя на символите. Но ако има многоезични символи, всеки от тях може да заема няколко байта.

Пример:

package main
import (
    "fmt"
)

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

За да преброите броя на символите (руни), трябва да използвате функцията utf8.RuneCountInString от пакета unicode/utf8.