Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: len, string, rune, byte, unicode

Как посчитать длину строки в Go?

Проверяет знание встроенной функции len() для строк в Go и понимание работы с Unicode.

Короткий ответ

В Go длина строки в байтах вычисляется функцией len(). Для подсчёта символов (рун) нужно использовать utf8.RuneCountInString() или преобразовать строку в []rune. Это важно, так как Go хранит строки как последовательность байтов в UTF-8.

Длинный ответ

Подсчёт длины строки в Go

В Go строки представляют собой неизменяемые последовательности байтов, закодированные в UTF-8. Поэтому функция len() возвращает количество байтов, а не количество символов (рун). Для корректного подсчёта символов необходимо использовать пакет unicode/utf8 или преобразование в срез рун.

Примеры кода

package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	s := "Привет, мир!"
	
	// Длина в байтах
	fmt.Println(len(s)) // 21 байт
	
	// Длина в символах (рунах)
	fmt.Println(utf8.RuneCountInString(s)) // 12 символов
	
	// Альтернативный способ
	runes := []rune(s)
	fmt.Println(len(runes)) // 12 символов
}

Применение

  • Используйте len() для проверки размера строки в памяти или при работе с бинарными данными.
  • Для подсчёта символов в пользовательском вводе (например, валидация длины имени) применяйте utf8.RuneCountInString().

Вывод: всегда учитывайте разницу между байтами и рунами при работе со строками в Go, особенно если строка содержит не-ASCII символы.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • Golang

    Golang

Ключевые слова

#len

#string

#rune

#byte

#unicode

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.