При отображении сообщения, для пользователя смысл может показаться более приятным, если послание написано менее машинным языком. Пакет text является дополнительным пакетом, в котором есть инструмент для форматирования правильной формы множественного числа для предложений на английском языке.

Как изменить число существительных в Go?

1. Выполните в терминале команду go get -x golang.org/x/text для установки нового пакета, если у вас его еще нет;
2. Создайте файл plurals.go со следующим содержимым;

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

3. Выполните код через go run plurals.go в терминале;
4. Посмотрите на вывод:

format plurals golang

Изучаем функции из пакета text

В пакете text есть функция NewPrinter, что принимает идентификацию языка и форматирует вывод наподобие того, как это делает пакет fmt, только с возможностью обработать сообщения в зависимости от пола и множественного числа данных.

Функция Set из пакета message добавляет зависимость от пола и множественного числа. Выбор формы множественного числа обоснован правилами функции Selectf. Функция Selectf создает тип catalog.Message на основе правил из plural.Form или селектора.

В коде из примера используются формы plural.One и plural.Other, а также селекторы =x, <x. Они сопоставляются против специального символа %d (другие специальные символы также можно использовать). Выбирается первый случай совпадения.

Для более подробной информации о селекторах и формах можете ознакомиться с документацией.