婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解Go 結構體格式化輸出

詳解Go 結構體格式化輸出

熱門標簽:地圖標注測試 烏魯木齊人工電銷機器人系統 廣東語音外呼系統供應商 賺地圖標注的錢犯法嗎 福州鐵通自動外呼系統 長沙ai機器人電銷 智能電銷機器人營銷 澳門防封電銷卡 濮陽自動外呼系統代理

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

打印結構體是打印日志時最長見的操作,但是當結構體內容較多都在一行時,不易于閱讀。在 Go 中結構體可以方便的轉為 JSON,因此我們可以借助 JSON 完成對 struct 的格式化輸出。

打印在一行,使用 %+v 顯示結構體字段名:

package main

import (
	"fmt"
)

// Student 學生信息
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())
}

運行輸出結果:

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

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

轉換函數已經添加至個人的 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 結構體格式化輸出的詳細內容,更多關于Go 結構體格式化輸出的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Go 結構體、數組、字典和 json 字符串的相互轉換方法
  • go語言使用第三方包 json化結構體操作示例
  • golang結構體與json格式串實例代碼
  • Go語言中結構體方法副本傳參與指針傳參的區別介紹
  • 淺談Go語言中的結構體struct & 接口Interface & 反射
  • go語言通過反射獲取和設置結構體字段值的方法
  • Go語言里的結構體文法實例分析
  • Go語言指針訪問結構體的方法
  • Go語言結構體定義和使用方法
  • Go語言中的匿名結構體用法實例

標簽:貴陽 阿克蘇 慶陽 太原 德州 調研邀請 廣西 西雙版納

巨人網絡通訊聲明:本文標題《詳解Go 結構體格式化輸出》,本文關鍵詞  詳解,結構,體,格式化,輸出,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Go 結構體格式化輸出》相關的同類信息!
  • 本頁收集關于詳解Go 結構體格式化輸出的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 红河县| 吴忠市| 龙山县| 白水县| 怀化市| 长阳| 嘉善县| 美姑县| 顺义区| 濮阳县| 运城市| 砀山县| 富源县| 浦东新区| 从江县| 清丰县| 甘德县| 南昌市| 苗栗市| 和平区| 淅川县| 廊坊市| 平阴县| 宣化县| 聂荣县| 革吉县| 霸州市| 腾冲县| 南雄市| 罗源县| 黔西| 亳州市| 佛山市| 广南县| 夏河县| 宾川县| 萨嘎县| 娱乐| 石河子市| 鹿邑县| 汽车|