您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关golang中实用库gotable的用法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在使用cli打印结果的时候,对结果进行格式化输出,但限于内容较长的,不好自动排版,需要明确宽度等其他字段,可以使用gotable可以根据字段的长度自动调整每列的宽度,并且自动将字段居中显示。表格可以动态的新增列和数据。
gotable可以打印table到控制台,目前支持ASCII/Chinese characters 。
可以非常轻松实现根据内容自调整局中显示,非常方便。
func Create(columns ...string) (*table.Table, error)
增加单行
func (tb *Table) AddRow(row map[string]string) error
增加多行
func (tb *Table) AddRows(rows []map[string]string) []map[string]string
func (tb *Table) AddColumn(column string) error
func (tb *Table) PrintTable()
关闭边框
func (tb *Table) CloseBorder()
开启边框
func (tb *Table) OpenBorder()
func (tb *Table) Json(indent int) (string, error)
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() }
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" // } //] }
利用golang 的 tabwriter也可以去实现打印表格,不过定义比较麻烦,更多高级功能可以自己定义,gotable拿来即用,可以配合表格输出和json输出到控制台的场景。
关于“golang中实用库gotable的用法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。