今天学个简单点的😀,dateparse
库时偶尔见遇到了这个库。git
本文代码使用 Go Modules。github
建立目录并初始化:golang
$ mkdir termtables && cd termtables $ go mod init github.com/darjun/go-daily-lib/termtables
安装termtables
库:微信
$ go get -u github.com/scylladb/termtables
最原始的termtables
库为github.com/apcera/termtables
,而后原始仓库已经被删除了。目前使用的都是其余人 fork 的仓库。工具
使用:学习
package main import ( "fmt" "github.com/scylladb/termtables" ) func main() { t := termtables.CreateTable() t.AddHeaders("User", "Age") t.AddRow("dj", 18) t.AddRow("darjun", 30) fmt.Println(t.Render()) }
运行:编码
$ go run main.go +--------+-----+ | User | Age | +--------+-----+ | dj | 18 | | darjun | 30 | +--------+-----+
使用很方便,首先调用termtables.CreateTable()
建立一个表格对象,调用该对象的AddHeader()
方法添加头部信息,而后调用AddRow()
逐行添加数据。最后调用Render()
返回渲染后的表格字符串。code
处理普通的文本表格,termtables
还支持输出 HTML 和 Markdown 格式的表格。只须要调用表格对象的SetModeHTML()/SetModeMarkdown()
方法设置一些模式便可 。对象
func main() { t := termtables.CreateTable() t.AddHeaders("User", "Age") t.AddRow("dj", 18) t.AddRow("darjun", 30) fmt.Println("HTML:") t.SetModeHTML() fmt.Println(t.Render()) fmt.Println("Markdown:") t.SetModeMarkdown() fmt.Println(t.Render()) }
运行:字符串
$ go run main.go HTML: <table class="termtable"> <thead> <tr><th>User</th><th>Age</th></tr> </thead> <tbody> <tr><td>dj</td><td>18</td></tr> <tr><td>darjun</td><td>30</td></tr> </tbody> </table> Markdown: | User | Age | | ------ | --- | | dj | 18 | | darjun | 30 |
输出的格式能够直接用在 Markdown/HTML 文件中。
今天轻松一下,了解了一个小巧的工具库termtables
。虽然本身实现一个相似的也不复杂,termtables
库额外帮咱们处理了编码、字宽等比较繁琐的细节。有须要在写示例程序中打印相似表格之类的数据不妨试一试termtables
。
你们若是发现好玩、好用的 Go 语言库,欢迎到 Go 每日一库 GitHub 上提交 issue😄
欢迎关注个人微信公众号【GoUpUp】,共同窗习,一块儿进步~