В некоторых случаях вывод (обычно данные вывода) представлен в виде табулированного текста, что форматируется в аккуратно-построенных клетках. Данного вида можно добиться через использование пакета 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, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»