<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go 每日一庫之 termtables

          共 1803字,需瀏覽 4分鐘

           ·

          2021-10-13 03:38

          簡介

          今天學個簡單點的??,termtables處理表格形式數(shù)據(jù)的輸出。適用于隨時隨地的輸出一些狀態(tài)或統(tǒng)計數(shù)據(jù),便于觀察和調(diào)試。是一個很小巧的工具庫。我在學習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,然后原始倉庫已經(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())
          }

          運行:

          $?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()方法設置一些模式即可 。

          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:
          "termtable">

          UserAge


          dj18
          darjun30



          Markdown:
          |?User???|?Age?|
          |?------?|?---?|
          |?dj?????|?18??|
          |?darjun?|?30??|

          輸出的格式可以直接用在 Markdown/HTML 文件中。

          總結(jié)

          今天輕松一下,了解了一個小巧的工具庫termtables。雖然自己實現(xiàn)一個類似的也不復雜,termtables庫額外幫我們處理了編碼、字寬等比較繁瑣的細節(jié)。有需要在寫示例程序中打印類似表格之類的數(shù)據(jù)不妨試一試termtables

          大家如果發(fā)現(xiàn)好玩、好用的 Go 語言庫,歡迎到 Go 每日一庫 GitHub 上提交 issue??

          參考

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


          推薦閱讀


          福利

          我為大家整理了一份從入門到進階的Go學習資料禮包,包含學習建議:入門看什么,進階看什么。關注公眾號 「polarisxu」,回復?ebook?獲取;還可以回復「進群」,和數(shù)萬 Gopher 交流學習。


          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产激情高清视频 | 啪啪免费网 | 在线亚洲中文在线观看 | 精精品人妻一区二区三区 | 爆乳一区新 |