简介

明天学个简略点的,dateparse库时偶然见遇到了这个库。

疾速应用

本文代码应用 Go Modules。

创立目录并初始化:

$ 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 mainimport (  "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()返回渲染后的表格字符串。

模式

解决一般的文本表格,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.goHTML:<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

参考

  1. Go 每日一库 GitHub:https://github.com/darjun/go-daily-lib
  2. termtables GitHub:github.com/scylladb/termtables

我的博客:https://darjun.github.io

欢送关注我的微信公众号【GoUpUp】,独特学习,一起提高~