В некоторых случаях вывод (обычно данные вывода) представлен в виде табулированного текста, что форматируется в аккуратно-построенных клетках. Данного вида можно добиться через использование пакета text/tabwriter. В пакете есть фильтр Writer, что трансформирует текст с символами табуляции \t в должным образом отформатированный текст вывода.
Как выровнять текст с tabwriter в Golang?
1. Создайте файл tabwriter.go со следующим содержанием:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import ( "fmt" "os" "text/tabwriter" ) func main() { w := tabwriter.NewWriter(os.Stdout, 15, 0, 1, ' ', tabwriter.AlignRight) fmt.Fprintln(w, "username\tfirstname\tlastname\t") fmt.Fprintln(w, "sohlich\tRadomir\tSohlich\t") fmt.Fprintln(w, "novak\tJohn\tSmith\t") w.Flush() } |
2. Запустите код через go run tabwriter.go;
3. Посмотрите на вывод в терминале:

Как создать код для выравнивания текста с tabwriter в Go?
Вызов функции NewWriter создает фильтр Writer с параметрами конфигурации. Все данные написаны в Writer и отформатированы в соответствии с данными параметрами. os.Stdout используется здесь в целях демонстрации.
Пакет text/tabwriter также предоставляет несколько других опций конфигурации вроде параметра flag. Наиболее полезен tabwriter.AlignRight, что нужен для конфигурации выравнивания содержимого в правую часть в каждом столбце.

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