Golang中struct結構標籤 Tag 的使用

2021-09-01 23:38:29 字數 724 閱讀 3791

在看別人的一些**時,宣告結構時有個json:name是做什麼用的?

想知道原因得了解下:

在golang中,命名都是推薦都是用駝峰方式,並且在首字母大小寫有特殊的語法含義:包外無法引用。但是由經常需要和其它的系統進行資料互動,例如轉成json格式,儲存到redis等等。這個時候如果直接用屬性名來作為鍵值會不符合專案要求。

於是就有了tag,也就是有了json:name或者orm:"size(1000)"也或者json:name orm:"size(1000)"這樣的宣告。

在我們把結構轉成json時 就會以tag裡面的名字出現。

下面這是我在用beego框架的orm宣告的乙個結構體

type comment struct

當我們在控制器中寫api時就可以直接取了

func (this *apicommentcontroller) all() 

this.data["json"] = map[string]inte***ce{}

this.servejson()

return

}

這時訪問介面返回的資料就是以tag裡面的命名的key

Golang 入門 結構體 struct

go 通過型別別名 alias types 和結構體的形式支援使用者自定義型別,或者叫定製型別。試圖表示乙個現實世界中的實體。結構體由一系列命名的元素組成,這些元素又被稱為字段,每個欄位都有乙個名稱和乙個型別。結構體的目的就是把資料聚集在一起,以便能夠更加便捷地操作這些資料。結構體的概念在 c 語言...

Golang中的struct比較

可比較的資料型別除了上述三種外,還有boolean,complex,pointer,channel,inte ce和array 不可比較的資料型別包括,slice,map,和function 不包含不可比較的成員變數 reflect.deepequal函式,指標和例項均可以比較 無論有沒有包含不可比...

Golang空結構體struct 用途,你知道嗎

golang 空結構體 struct 可以用來節省記憶體 a struct println unsafe.sizeof a output 0 理由如下 本例說明在map裡節省資源的用途 set make map string struct for value range string fmt.pri...