Это 27-й день моего участия в Gengwen Challenge, смотрите подробности мероприятия:Обновить вызов
задний фон
При использовании cli для печати результата отформатируйте вывод, но он ограничен длинным содержимым, которое нелегко напечатать автоматически, и необходимо указать другие поля, такие как ширина.Вы можете использовать gotable для автоматической настройки ширины каждый столбец в соответствии с длиной поля и Автоматически центрировать поля. Таблицы могут динамически добавлять новые столбцы и данные.
Введение в две библиотеки
gotable может выводить таблицу на консоль, в настоящее время поддерживает символы ASCII/китайские символы.
Реализовать самонастройку внутриигрового дисплея в соответствии с контентом очень легко, что очень удобно.
три кода
3.1 Создайте таблицу
func Create(columns ...string) (*table.Table, error)
3.2 Добавить строку
- добавить одну строку
func (tb *Table) AddRow(row map[string]string) error
- добавить несколько строк
func (tb *Table) AddRows(rows []map[string]string) []map[string]string
3.3 Добавить столбец
func (tb *Table) AddColumn(column string) error
3.4 Печать формы
func (tb *Table) PrintTable()
3.5 Пограничная операция
- закрыть границу
func (tb *Table) CloseBorder()
- открытая граница
func (tb *Table) OpenBorder()
3.6 вывод json
func (tb *Table) Json(indent int) (string, error)
Четыре теста
4.1 Создайте таблицу
package main
import (
"fmt"
"github.com/liushuochen/gotable"
)
func main() {
table, err := gotable.Create("country", "city")
if err != nil {
fmt.Println(err.Error())
return
}
values := []map[string]string{{"country": "China", "city": "Beijing"},
{"country": "Japan", "city": "Tokyo"},
{"country": "North Korea", "city": "Pyongyang"}}
for _, value := range values {
err := table.AddRow(value)
if err != nil {
fmt.Println(err.Error())
return
}
}
r, _ := table.Json(4)
fmt.Println(r)
table.CloseBorder()
table.PrintTable()
}
4.2 вывод json
package main
import (
"fmt"
"github.com/liushuochen/gotable"
)
func main() {
tb, err := gotable.Create("Name", "ID", "salary")
if err != nil {
fmt.Println("Create table failed: ", err.Error())
return
}
rows := make([]map[string]string, 0)
for i := 0; i < 3; i++ {
row := make(map[string]string)
row["Name"] = fmt.Sprintf("employee-%d", i)
row["ID"] = fmt.Sprintf("00%d", i)
row["salary"] = "60000"
rows = append(rows, row)
}
jsonString, err := tb.Json(4)
if err != nil {
fmt.Println("ERROR: ", err.Error())
return
}
fmt.Println(jsonString)
// output: []
tb.AddRows(rows)
jsonString, err = tb.Json(4)
if err != nil {
fmt.Println("ERROR: ", err.Error())
return
}
fmt.Println(jsonString)
// output:
// [
// {
// "ID": "000",
// "Name": "employee-0",
// "salary": "60000"
// },
// {
// "ID": "001",
// "Name": "employee-1",
// "salary": "60000"
//
//
// "ID": "002",
// "Name": "employee-2",
// "salary": "60000"
// }
//]
}
5 других
Вы также можете использовать табулятор golang для печати таблицы, но определение более проблематично, более сложные функции можно определить самостоятельно, getable готов к использованию и может использоваться с выводом таблицы и выводом json на консоль.