Go 每日一庫之termtables的使用
今天學(xué)個簡單點(diǎn)的😀,termtables處理表格形式數(shù)據(jù)的輸出。適用于隨時(shí)隨地的輸出一些狀態(tài)或統(tǒng)計(jì)數(shù)據(jù),便于觀察和調(diào)試。是一個很小巧的工具庫。我在學(xué)習(xí)dateparse庫時(shí)偶爾見遇到了這個庫。
快速使用
本文代碼使用 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,然后原始倉庫已經(jīng)被刪除了。目前使用的都是其他人 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()) }
運(yùn)行:
$ go run main.go +--------+-----+ | User | Age | +--------+-----+ | dj | 18 | | darjun | 30 | +--------+-----+
使用很方便,首先調(diào)用termtables.CreateTable()創(chuàng)建一個表格對象,調(diào)用該對象的AddHeader()方法添加頭部信息,然后調(diào)用AddRow()逐行添加數(shù)據(jù)。最后調(diào)用Render()返回渲染后的表格字符串。
模式
處理普通的文本表格,termtables還支持輸出 HTML 和 Markdown 格式的表格。只需要調(diào)用表格對象的SetModeHTML()/SetModeMarkdown()方法設(shè)置一些模式即可 。
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()) }
運(yùn)行:
$ 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 文件中。
總結(jié)
今天輕松一下,了解了一個小巧的工具庫termtables。雖然自己實(shí)現(xiàn)一個類似的也不復(fù)雜,termtables庫額外幫我們處理了編碼、字寬等比較繁瑣的細(xì)節(jié)。有需要在寫示例程序中打印類似表格之類的數(shù)據(jù)不妨試一試termtables。
大家如果發(fā)現(xiàn)好玩、好用的 Go 語言庫,歡迎到 Go 每日一庫 GitHub 上提交 issue😄
參考
Go 每日一庫 GitHub:https://github.com/darjun/go-daily-lib
到此這篇關(guān)于Go 每日一庫之termtables的使用的文章就介紹到這了,更多相關(guān)Go termtables內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang并發(fā)編程使用Select語句的實(shí)現(xiàn)
Go語言中的select語句是并發(fā)編程中的重要工具,允許Goroutine等待多個通道操作,它阻塞直至任一case可執(zhí)行,可用于接收數(shù)據(jù)、實(shí)現(xiàn)超時(shí)機(jī)制和非阻塞通道操作,感興趣的可以了解一下2024-10-10深入string理解Golang是怎樣實(shí)現(xiàn)的
這篇文章主要為大家介紹了深入string理解Golang是怎樣實(shí)現(xiàn)的原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Go語言的變量、函數(shù)、Socks5代理服務(wù)器示例詳解
這篇文章主要介紹了Go語言的變量、函數(shù)、Socks5代理服務(wù)器的相關(guān)資料,需要的朋友可以參考下2017-09-09golang interface{}類型轉(zhuǎn)換的實(shí)現(xiàn)示例
在Go語言中,類型轉(zhuǎn)換可以通過斷言、顯式、隱式和強(qiáng)制四種方式實(shí)現(xiàn),針對interface{}類型轉(zhuǎn)換為float32或float64,需要使用type斷言或reflect包處理,感興趣的可以了解一下2024-10-10一文帶你吃透Golang中net/http標(biāo)準(zhǔn)庫服務(wù)端
這篇文章將從服務(wù)端(Server)作為切入點(diǎn)和大家分享一下Go語言net/http標(biāo)準(zhǔn)庫的實(shí)現(xiàn)邏輯,進(jìn)而一步步分析http標(biāo)準(zhǔn)庫內(nèi)部是如何運(yùn)作的,感興趣的可以了解下2024-03-03基于Go語言實(shí)現(xiàn)的簡易api網(wǎng)關(guān)的示例代碼
本文主要介紹了基于Go語言實(shí)現(xiàn)的簡易api網(wǎng)關(guān),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12