在使用cli打印结果的时候,对结果进行格式化输出,但限于内容较长的,不好自动排版,需要明确宽度等其他字段,可以使用gotable可以根据字段的长度自动调整每列的宽度,并且自动将字段居中显示。表格可以动态的新增列和数据。
二 库简介gotable可以打印table到控制台,目前支持ASCII/Chinese characters 。可以非常轻松实现根据内容自调整局中显示,非常方便。
三 代码3.1 创建表格func Create(columns ...string) (*table.Table, error)3.2 增加row
增加单行
func (tb *Table) AddRow(row map[string]string) error
增加多行
func (tb *Table) AddRows(rows []map[string]string) []map[string]string3.3 增加column
func (tb *Table) AddColumn(column string) error3.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 mainimport ( '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 mainimport ( '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输出到控制台的场景。
参考链接https://github.com/liushuochen/gotable
到此这篇关于golang 实用库gotable的具体使用的文章就介绍到这了,更多相关golang gotable内容请搜索优爱好网以前的文章或继续浏览下面的相关文章希望大家以后多多支持优爱好网!
相关文章:
1. 怎么让div+css兼容ie6ie7ie8ie9和FireFoxChrome等浏览器2. requestAnimationFrame使用示例详解3. 基于JavaScript实现图片裁剪功能4. React优雅的封装SvgIcon组件示例5. uniapp自定义验证码输入框并隐藏光标6. 详解JavaScript中原始数据类型Symbol的使用7. JavaScript深拷贝方法structuredClone使用8. uniapp 手机验证码输入框实现代码(随机数、倒计时、隐藏手机号码中间四位)可以直接使用9. 使用Node.js实现Clean Architecture方法示例详解10. Jquery使用原生AJAX方法请求数据