При отображении сообщения, для пользователя смысл может показаться более приятным, если послание написано менее машинным языком. Пакет text является дополнительным пакетом, в котором есть инструмент для форматирования правильной формы множественного числа для предложений на английском языке.
Как изменить число существительных в Go?
1. Выполните в терминале команду go get -x golang.org/x/text для установки нового пакета, если у вас его еще нет;
2. Создайте файл plurals.go со следующим содержимым;
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество 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  | 
						package main import ( 	"golang.org/x/text/feature/plural" 	"golang.org/x/text/language" 	"golang.org/x/text/message" ) func main() { 	message.Set(language.English, "%d items to do", 		plural.Selectf(1, "%d", 			"=0", "no items to do", 			plural.One, "one item to do", 			"<100", "%[1]d items to do", 			plural.Other, "lot of items to do", 		)) 	message.Set(language.English, "The average is %.2f", 		plural.Selectf(1, "%.2f", 			"<1", "The average is zero", 			"=1", "The average is one", 			plural.Other, "The average is %[1]f ", 		)) 	prt := message.NewPrinter(language.English) 	prt.Printf("%d items to do", 0) 	prt.Println() 	prt.Printf("%d items to do", 1) 	prt.Println() 	prt.Printf("%d items to do", 10) 	prt.Println() 	prt.Printf("%d items to do", 1000) 	prt.Println() 	prt.Printf("The average is %.2f", 0.8) 	prt.Println() 	prt.Printf("The average is %.2f", 1.0) 	prt.Println() 	prt.Printf("The average is %.2f", 10.0) 	prt.Println() }  | 
					
3. Выполните код через go run plurals.go в терминале;
4. Посмотрите на вывод:

Изучаем функции из пакета text
В пакете text есть функция NewPrinter, что принимает идентификацию языка и форматирует вывод наподобие того, как это делает пакет fmt, только с возможностью обработать сообщения в зависимости от пола и множественного числа данных.
Функция Set из пакета message добавляет зависимость от пола и множественного числа. Выбор формы множественного числа обоснован правилами функции Selectf. Функция Selectf создает тип catalog.Message на основе правил из plural.Form или селектора.
В коде из примера используются формы plural.One и plural.Other, а также селекторы =x, <x. Они сопоставляются против специального символа %d (другие специальные символы также можно использовать). Выбирается первый случай совпадения.
Для более подробной информации о селекторах и формах можете ознакомиться с документацией.

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