Курс — «Программирование на Go для начинающих» — #9 Работа с данными. Строки и руны: обработка текста в Go.
Здравствуйте, дорогие друзья.
В Go обработка текста — это важная часть многих программ. Для работы с текстом Go предлагает два основных типа: строки и руны. Понимание этих типов и их использование является ключом к эффективной работе с текстовыми данными в Go.
Строки
Строка в Go — это последовательность байтов. Строки в Go неизменяемы, что означает, что после их создания изменить содержимое строки нельзя. Для изменения строки необходимо создать новую строку с необходимыми изменениями.
1 |
s := "Привет, мир!" |
Строки в Go могут содержать любые данные, включая бинарные, но чаще всего они используются для хранения текста в кодировке UTF-8. Это означает, что один символ может занимать более одного байта.
Руны
Руна в Go — это одиночный символ Unicode. Тип rune
является псевдонимом для int32
, и он используется для представления кодовых точек Unicode. Работа с рунами особенно полезна, когда необходимо обрабатывать посимвольно текст, закодированный в UTF-8.
1 |
r := '世' |
В этом примере r
— это руна, представляющая символ китайского иероглифа «мир».
Работа со строками и рунами
Для обработки строк в Go существует стандартный пакет strings
, который предлагает множество полезных функций для работы со строками, таких как поиск, замена подстрок, разделение строк на части и многое другое.
Когда дело доходит до работы с отдельными символами, часто бывает необходимо преобразовать строку в срез рун:
1 2 |
s := "Привет, мир!" r := []rune(s) |
Теперь r
— это срез рун, где каждый элемент представляет собой один символ строки s
. Это позволяет выполнять итерацию по символам строки, а также получать и изменять отдельные символы.
Пример: Подсчет символов
Для подсчета количества символов в строке, учитывая, что символ может занимать более одного байта в кодировке UTF-8, лучше всего использовать срез рун:
1 2 3 |
s := "Привет, мир!" r := []rune(s) fmt.Println(len(r)) // Выведет количество символов в строке |
Понимание различий между строками и рунами в Go и умение работать с ними — важный навык для любого разработчика Go. Будь то простое копирование строк, обработка текста посимвольно или международная поддержка, Go предоставляет мощные и гибкие инструменты для работы с текстом.
На этом все. Всем хорошего дня!
Цикл статей по курсу: «Язык программирования Go для начинающих».