Зачастую при работе над программой требуется изменить регистр букв. Самые популярные случаи включают:
- Сравнение, чувствительное к регистру;
 - Начало предложения с заглавной буквой;
 - Конвертация из camel-case в snake-case.
 
Для замены регистра используем функции ToLower, ToUpper, ToTitle и Title из пакета strings.
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
Как изменить регистр букв в строке Go?
1. Создайте файл case.go со следующим содержимым:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65  | 
						package main import ( 	"fmt" 	"strings" 	"unicode" ) const email = "ExamPle@domain.com" const name = "isaac newton" const upc = "upc" const i = "i" const snakeCase = "first_name" func main() { 	// Для сравнения входных данных пользователя 	// иногда лучше сравнивать 	// входные данные, что находятся 	// в одинаковом регистре. 	input := "Example@domain.com" 	input = strings.ToLower(input) 	emailToCompare := strings.ToLower(email) 	matches := input == emailToCompare 	fmt.Printf("Email matches: %t\n", matches) 	upcCode := strings.ToUpper(upc) 	fmt.Println("UPPER case: " + upcCode) 	// У данного диаграфа разные регистры upper 	// и title. 	str := "dz" 	fmt.Printf("%s in upper: %s and title: %s \n", 		str, 		strings.ToUpper(str), 		strings.ToTitle(str)) 	// Используется функция XXXSpecial 	title := strings.ToTitle(i) 	titleTurk := strings.ToTitleSpecial(unicode.TurkishCase, i) 	if title != titleTurk { 		fmt.Printf("ToTitle is defferent: %#U vs. %#U \n", 			title[0], 			[]rune(titleTurk)[0]) 	} 	// В некоторых случаях у входных данных 	// нужно подкорректировать регистр. 	correctNameCase := strings.Title(name) 	fmt.Println("Corrected name: " + correctNameCase) 	// Конвертация регистра snake-case 	// в camel-case с использованием 	// функций Title и ToLower. 	firstNameCamel := toCamelCase(snakeCase) 	fmt.Println("Camel case: " + firstNameCamel) } func toCamelCase(input string) string { 	titleSpace := strings.Title(strings.Replace(input, "_", " ", -1)) 	camel := strings.Replace(titleSpace, " ", "", -1) 	return strings.ToLower(camel[:1]) + camel[1:] }  | 
					
2. Запустите код через go run case.go;
3. Посмотрите на результат в терминале:

Функции ToLower(), ToUpper() и ToTitle() для изменения регистра
Обратите внимание, что в Юникоде отображение заголовка title-case отличается от отображения текста в верхнем регистре. Разница в том, что количество символов требует специальной обработки. В основном это лигатуры и диаграфы вроде fl, dz и lj, а также число греческих многогранных символов. К примеру, U+01C7 (LJ) отображается как U+01C8 (Lj), а не как U+01C9 (lj).
Для качественного сравнения, не чувствительного к регистру, нужно использовать функцию EqualFold из пакета strings. Данная функция использует конвертирование регистра для нормализации строк и их сравнения.

Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
 - 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»