今天學個簡單點的😀,termtables處理表格形式數(shù)據(jù)的輸出。適用于隨時隨地的輸出一些狀態(tài)或統(tǒng)計數(shù)據(jù),便于觀察和調試。是一個很小巧的工具庫。我在學習dateparse庫時偶爾見遇到了這個庫。
快速使用
本文代碼使用 Go Modules。
創(chuàng)建目錄并初始化:
$ 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()創(chuàng)建一個表格對象,調用該對象的AddHeader()方法添加頭部信息,然后調用AddRow()逐行添加數(shù)據(jù)。最后調用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.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。雖然自己實現(xiàn)一個類似的也不復雜,termtables庫額外幫我們處理了編碼、字寬等比較繁瑣的細節(jié)。有需要在寫示例程序中打印類似表格之類的數(shù)據(jù)不妨試一試termtables。
大家如果發(fā)現(xiàn)好玩、好用的 Go 語言庫,歡迎到 Go 每日一庫 GitHub 上提交 issue😄
參考
Go 每日一庫 GitHub:https://github.com/darjun/go-daily-lib
到此這篇關于Go 每日一庫之termtables的使用的文章就介紹到這了,更多相關Go termtables內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Go語言操作mysql數(shù)據(jù)庫簡單例子
- 深入解析Go語言的io.ioutil標準庫使用
- go語言日志記錄庫簡單使用方法實例分析
- go語言實現(xiàn)通過FTP庫自動上傳web日志
- Go語言連接Oracle數(shù)據(jù)庫的方法
- Go語言庫系列之flag的具體使用
- Go語言庫系列之dotsql詳解
- 模塊一 GO語言基礎知識-庫源碼文件