Строки

Строки, пакет strings, руны и переворот строки через []rune.

Строки в Go неизменяемы. Полезные функции живут в пакете strings: ToLower, ToUpper, Contains, Count, Split. Тонкость Go: строка хранится в байтах, а не в символах. Для латиницы и цифр это неважно, но кириллическая буква занимает 2 байта. Чтобы работать с настоящими символами, строку преобразуют в срез рун: []rune(s). Правило простое: len(s) — байты, len([]rune(s)) — символы.
Go

Введите слово, например: hello

Переворот строки делается через срез рун: обмениваем первый символ с последним, второй — с предпоследним, пока не встретимся в середине. Заодно это даёт проверку палиндрома: перевернули и сравнили.
Go

Переворот и проверка палиндрома. Введите: racecar

Заметьте элегантный обмен без временной переменной: r[i], r[j] = r[j], r[i] — фирменный приём Go. К уроку прикреплены задачи «Переворот строки», «Проверка палиндрома» и «Подсчёт гласных» — решите все три и отметьте урок пройденным.

Задачи для практики

Доска