最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go?tablewriter庫提升命令行輸出專業(yè)度實(shí)例詳解

 更新時(shí)間:2023年11月16日 09:21:12   作者:不背鍋運(yùn)維  
命令行工具大家都用過,如果是運(yùn)維人員可能會(huì)編寫命令行工具來完成各種任務(wù),命令行輸出的美觀和易讀性往往容易被忽視,很爛的輸出會(huì)讓人感覺不專業(yè),本文將介紹Go語言中牛逼的實(shí)戰(zhàn)工具tablewriter庫,使你在命令行輸出中展現(xiàn)出專業(yè)的一面

tablewriter:簡(jiǎn)介與安裝

Go語言是一種簡(jiǎn)潔、高效的編程語言,而tablewriter是一個(gè)流行的Go庫,讓你可以輕松地在命令行中創(chuàng)建漂亮的表格輸出。它支持在終端中展示數(shù)據(jù),并提供了許多靈活的選項(xiàng)來定制輸出的樣式和格式。

安裝tablewriter庫非常簡(jiǎn)單。你只需打開終端并執(zhí)行以下命令:

go get -u github.com/olekukonko/tablewriter

安裝完成后,你就可以在Go代碼中引入tablewriter庫,開始在命令行中展現(xiàn)專業(yè)的表格輸出。

使用tablewriter:簡(jiǎn)單示例

讓我們通過一個(gè)簡(jiǎn)單的示例來了解tablewriter是如何工作的。假設(shè)你有一個(gè)存儲(chǔ)了學(xué)生信息的結(jié)構(gòu)體,并且你想在命令行中輸出這些信息。首先,我們需要導(dǎo)入tablewriter庫,然后創(chuàng)建一個(gè)新的tablewriter對(duì)象并設(shè)置表格的列名:

package main
import (
 "os"
 "github.com/olekukonko/tablewriter"
)
type Student struct {
 Name    string
 Age     int
 Score   float64
}
func main() {
 students := []Student{
  {"Alice", 20, 85.5},
  {"Bob", 21, 78.2},
  {"Charlie", 19, 92.7},
 }
 table := tablewriter.NewWriter(os.Stdout)
 table.SetHeader([]string{"Name", "Age", "Score"})
 // 添加數(shù)據(jù)行
 for _, student := range students {
  table.Append([]string{student.Name, strconv.Itoa(student.Age), strconv.FormatFloat(student.Score, 'f', 1, 64)})
 }
 // 輸出表格
 table.Render()

運(yùn)行這段代碼,得到類似MySQL查詢結(jié)果的專業(yè)輸出:

tantianran@go-dev:~/gocode/src/temp-test$ go run main.go
+---------+-----+-------+
|  NAME   | AGE | SCORE |
+---------+-----+-------+
| Alice   |  20 |  85.5 |
| Bob     |  21 |  78.2 |
| Charlie |  19 |  92.7 |
+---------+-----+-------+

定制輸出樣式

tablewriter提供了許多選項(xiàng),讓你可以定制輸出的樣式以滿足你的需求。你可以調(diào)整表格的對(duì)齊方式、添加自定義樣式、設(shè)置邊框、調(diào)整列寬等等。以下是一些示例:

調(diào)整列對(duì)齊方式:

table.SetAlignment(tablewriter.ALIGN_LEFT) // 或 ALIGN_CENTER 或 ALIGN_RIGHT

添加自定義樣式:

table.SetStyle(tablewriter.StyleBold)

設(shè)置邊框:

table.SetBorders(tablewriter.Border{Left: true, Top: false, Right: true, Bottom: false})

調(diào)整列寬:

table.SetColWidth(20) // 設(shè)置所有列的寬度
// 或者
table.SetColWidth(0, 30) // 設(shè)置第1列的寬度為30,其他列使用默認(rèn)寬度

以上僅是tablewriter提供的一小部分選項(xiàng)。你可以根據(jù)實(shí)際需求進(jìn)行靈活定制,讓輸出的表格看起來更加專業(yè)和美觀。

最后

使用tablewriter庫不僅僅是在展示數(shù)據(jù)時(shí)更美觀,而且在處理大量數(shù)據(jù)或需要分類展示信息時(shí),它的優(yōu)勢(shì)更為明顯。你可以通過合理的定制輸出樣式和列寬,創(chuàng)建出適合你特定需求的表格,從而讓輸出結(jié)果更加易讀、明了。

以上就是Go tablewriter庫提升命令行輸出專業(yè)度實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go tablewriter命令行輸出的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入理解go?reflect反射慢的原因

    深入理解go?reflect反射慢的原因

    我們選擇?go?語言的一個(gè)重要原因是,它有非常高的性能。但是它反射的性能卻一直為人所詬病,本篇文章就來看看?go?反射的性能問題,感興趣的可以了解一下
    2023-01-01
  • go語言的工作空間和GOPATH環(huán)境變量介紹

    go語言的工作空間和GOPATH環(huán)境變量介紹

    這篇文章主要介紹了go語言的工作空間和GOPATH環(huán)境變量介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • go modules中replace使用方法

    go modules中replace使用方法

    這篇文章主要為大家介紹了go modules中replace使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Hugo 游樂場(chǎng)內(nèi)容初始化示例詳解

    Hugo 游樂場(chǎng)內(nèi)容初始化示例詳解

    這篇文章主要為大家介紹了Hugo 游樂場(chǎng)內(nèi)容初始化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Golang timer可能造成的內(nèi)存泄漏問題分析

    Golang timer可能造成的內(nèi)存泄漏問題分析

    本文探討了Golang中timer可能造成的內(nèi)存泄漏問題,通過分析一段代碼,解釋了為什么協(xié)程在調(diào)用timer.Stop()后無法正常退出,文章指出,timer.Stop()并不關(guān)閉Channel,導(dǎo)致協(xié)程無法繼續(xù)執(zhí)行,最后,提出了一種修復(fù)方法,并呼吁大家關(guān)注和分享
    2024-12-12
  • 詳解Golang如何監(jiān)聽某個(gè)函數(shù)的開始執(zhí)行和執(zhí)行結(jié)束

    詳解Golang如何監(jiān)聽某個(gè)函數(shù)的開始執(zhí)行和執(zhí)行結(jié)束

    這篇文章主要為大家詳細(xì)介紹了Golang如何監(jiān)聽某個(gè)函數(shù)的開始執(zhí)行和執(zhí)行結(jié)束,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2024-02-02
  • Go中g(shù)routine通信與context控制實(shí)例詳解

    Go中g(shù)routine通信與context控制實(shí)例詳解

    隨著context包的引入,標(biāo)準(zhǔn)庫中很多接口因此加上了context參數(shù),下面這篇文章主要給大家介紹了關(guān)于Go中g(shù)routine通信與context控制的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Go的slices.Grow優(yōu)雅擴(kuò)容的實(shí)現(xiàn)

    Go的slices.Grow優(yōu)雅擴(kuò)容的實(shí)現(xiàn)

    本文主要介紹了Go的slices.Grow優(yōu)雅擴(kuò)容的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-06-06
  • Golang基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理

    Golang基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理

    這篇文章主要為大家詳細(xì)介紹了Golang如何基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04
  • 詳解Go語言如何實(shí)現(xiàn)字符串切片反轉(zhuǎn)函數(shù)

    詳解Go語言如何實(shí)現(xiàn)字符串切片反轉(zhuǎn)函數(shù)

    Go?語言不像其他語言如?Python,有著內(nèi)置的?reverse()?函數(shù),本文將先學(xué)習(xí)一下Python中對(duì)于列表的反轉(zhuǎn)方法,然后再學(xué)習(xí)如果在Go語言中實(shí)現(xiàn)相同的功能,感興趣的小伙伴快跟隨小編一起來學(xué)習(xí)一下
    2022-10-10

最新評(píng)論

萨嘎县| 兰西县| 丰都县| 罗源县| 仁怀市| 萨迦县| 隆子县| 正安县| 茶陵县| 南川市| 蓬安县| 高州市| 奉新县| 虎林市| 侯马市| 江城| 沙田区| 合作市| 广河县| 南充市| 湘阴县| 龙泉市| 澎湖县| 乌鲁木齐县| 双鸭山市| 四平市| 盈江县| 商丘市| 闻喜县| 白水县| 英山县| 乌鲁木齐县| 隆德县| 靖西县| 台中县| 石台县| 甘泉县| 淮安市| 钦州市| 昌江| 桐城市|