Строки
Строки, пакет 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.
К уроку прикреплены задачи «Переворот строки», «Проверка палиндрома» и «Подсчёт гласных» — решите все три и отметьте урок пройденным.