欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Go 結(jié)構(gòu)體格式化輸出

 更新時間:2020年08月27日 15:45:13   作者:Dabelv  
這篇文章主要介紹了Go 結(jié)構(gòu)體格式化輸出的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)go語言,感興趣的朋友可以了解下

在軟件系統(tǒng)中定位問題時日志不可或缺,但是當(dāng)一個系統(tǒng)功能繁多,需要打印的日志也多如牛毛,此時為了提高我們?yōu)g覽日志的效率,便于閱讀的輸出格式必不可少。

打印結(jié)構(gòu)體是打印日志時最長見的操作,但是當(dāng)結(jié)構(gòu)體內(nèi)容較多都在一行時,不易于閱讀。在 Go 中結(jié)構(gòu)體可以方便的轉(zhuǎn)為 JSON,因此我們可以借助 JSON 完成對 struct 的格式化輸出。

打印在一行,使用 %+v 顯示結(jié)構(gòu)體字段名:

package main

import (
	"fmt"
)

// Student 學(xué)生信息
type Student struct {
	Name  string
	Addr  HomeInfo
	M   map[string]string
}

// HomeInfo 家庭住址
type HomeInfo struct {
	Province   string
	City     string
	County    string
	Street    string
	DetailedAddr string
}

var student = Student{
	Name: "dablelv",
	Addr: HomeInfo{
		Province:   "Guangdong",
		City:     "Shenzhen",
		County:    "Baoan",
		Street:    "Xixiang",
		DetailedAddr: "Shengtianqi",
	},
	M: map[string]string{
		"hobby": "pingpopng",
	},
}

func main() {
	fmt.Printf("student=%+v\n", student)
}

運行輸出:

student={Name:cat Addr:{Province:Guangdong City:Shenzhen County:Baoan Street:Xixiang DetailedAddr:Shengtianqi} M:map[hobby:pingpopng]}

輸出格式化 JSON 串:

func main() {
	bs, _ := json.Marshal(student)
	var out bytes.Buffer
	json.Indent(&out, bs, "", "\t")
	fmt.Printf("student=%v\n", out.String())
}

運行輸出結(jié)果:

student={
"Name": "cat",
"Addr": {
"Province": "Guangdong",
"City": "Shenzhen",
"County": "Baoan",
"Street": "Xixiang",
"DetailedAddr": "Shengtianqi"
},
"M": {
"hobby": "pingpopng"
}
}

將 strutc 轉(zhuǎn)為 json 串后再格式化輸出,大大增加了可閱讀性。

轉(zhuǎn)換函數(shù)已經(jīng)添加至個人的 Go 工具庫 go-huge-util,使用示例如下:

package main

import (
	"fmt"
  huge "github.com/dablelv/go-huge-util"
)

func main() {
	s, _ := huge.ToFormattedJSON(&student)
	fmt.Printf("student=%v\n", s)
}

運行輸出:

student={
"Name": "cat",
"Addr": {
"Province": "Guangdong",
"City": "Shenzhen",
"County": "Baoan",
"Street": "Xixiang",
"DetailedAddr": "Shengtianqi"
},
"M": {
"hobby": "pingpopng"
}
}

以上就是詳解Go 結(jié)構(gòu)體格式化輸出的詳細(xì)內(nèi)容,更多關(guān)于Go 結(jié)構(gòu)體格式化輸出的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang 數(shù)組隨機排序的實現(xiàn)

    golang 數(shù)組隨機排序的實現(xiàn)

    本文主要介紹了golang 數(shù)組隨機排序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 詳解Go語言各種常見類型的默認(rèn)值和判空方法

    詳解Go語言各種常見類型的默認(rèn)值和判空方法

    本文主要介紹了詳解Go語言各種常見類型的默認(rèn)值和判空方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • golang jwt+token驗證的實現(xiàn)

    golang jwt+token驗證的實現(xiàn)

    這篇文章主要介紹了golang jwt+token驗證的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 解決golang.org不能訪問的問題(推薦)

    解決golang.org不能訪問的問題(推薦)

    這篇文章主要介紹了解決golang.org不能訪問的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • Golang連接池的幾種實現(xiàn)案例小結(jié)

    Golang連接池的幾種實現(xiàn)案例小結(jié)

    這篇文章主要介紹了Golang連接池的幾種實現(xiàn)案例小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Go語言實現(xiàn)ssh&scp的方法詳解

    Go語言實現(xiàn)ssh&scp的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語言實現(xiàn)ssh&scp,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴可以了解一下
    2022-10-10
  • Go實現(xiàn)雙向鏈表的示例代碼

    Go實現(xiàn)雙向鏈表的示例代碼

    這篇文章主要介紹了Go實現(xiàn)雙向鏈表的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Go實現(xiàn)后臺任務(wù)調(diào)度系統(tǒng)的實例代碼

    Go實現(xiàn)后臺任務(wù)調(diào)度系統(tǒng)的實例代碼

    平常我們在開發(fā)API的時候,前端傳遞過來的大批數(shù)據(jù)需要經(jīng)過后端處理,如果后端處理的速度快,前端響應(yīng)就快,反之則很慢,影響用戶體驗,為了解決這一問題,需要我們自己實現(xiàn)后臺任務(wù)調(diào)度系統(tǒng),本文將介紹如何用Go語言實現(xiàn)后臺任務(wù)調(diào)度系統(tǒng),需要的朋友可以參考下
    2023-06-06
  • golang?metrics各個指標(biāo)含義講解說明

    golang?metrics各個指標(biāo)含義講解說明

    這篇文章主要為大家介紹了golang?metrics各個指標(biāo)含義講解說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 為什么Go里值為nil可以調(diào)用函數(shù)原理分析

    為什么Go里值為nil可以調(diào)用函數(shù)原理分析

    這篇文章主要為大家介紹了為什么Go里值為nil可以調(diào)用函數(shù)原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論