Sobes.tech
Senior

Ce este o șir în Go? Cum să afli lungimea șirului în caractere și în octeți?

sobes.tech AI

Răspuns de la AI

В Go строка (string) — это неизменяемая последовательность байт, обычно содержащая текст в кодировке UTF-8.

  • Длина строки в байтах — это просто количество байт в срезе []byte, который лежит в основе строки.
  • Длина строки в символах (рунах) — количество Unicode-символов, которые могут занимать разное число байт.

Пример:

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    s := "Привет"
    fmt.Println("Длина в байтах:", len(s))
    fmt.Println("Длина в символах:", utf8.RuneCountInString(s))
}

Вывод будет примерно:

Длина в байтах: 12
Длина в символах: 6

Потому что каждый русский символ в UTF-8 занимает 2 байта.