GO語言中的StructTag型別

2021-08-28 10:32:17 字數 1025 閱讀 7204

structtag是什麼?在go語言裡,structtag是乙個標記字串,此字串可跟隨在struct中欄位定義的後面。structtag就是一系列的 key:」value」 形式的組合,其中key是乙個不可為空的字串,key-value組合可以有多個,空格分隔。

structtag有什麼用?!structtag主要解決了不同型別資料集合間(struct,json,table等)轉換中鍵值key定義不一樣的問題。structtag可以理解為乙個不用資料型別鍵值key的對映表map, 在structtag中可以定義不用資料集合鍵值和struct中key值的對映關係,這樣方便了struct資料轉為其他型別資料的過程。例如我們可以把struct資料對映成為乙個json格式的資料,或者把struct資料對映成為乙個資料表table。當然我們也可以依據structtag的定義,把乙個json資料轉為乙個struct結構資料。

下面,我們可以看一下,struct和json資料間的互相轉換的例子:

package main

import (

"fmt"

"encoding/json"

)type person struct

func main() `

person := new(person)

json.unmarshal(byte(json_string), person) //將json資料轉為person struct

fmt.println(person)

new_json, _ := json.marshal(person) //將person sturct 轉為json格式

fmt.printf("%s\n", new_json)

} // *output*

// &

//

從上面的**可看出,結構體間的資料轉換可以不用嚴格遵循一對一的轉換,例如person struct 中定義的middlename,如果json資料定義中無此字段,可以在structtag中加入」omitempty」, 標識該字段的資料可忽略。

《轉》Go語言struct tag介紹

一 tag說明 先介紹一下 反引號 反引號用來建立原生的字串字面量,這些字串可能由多行組成 不支援任何轉義序列 原生的字串字面量多用於書寫多行訊息 html以及正規表示式。在處理json格式字串的時候,經常會看到宣告struct結構的時候,屬性的右側還有反引號括起來的內容。如下 type user ...

Go 結構體標籤(Struct Tag)

在處理json格式字串的時候,經常會看到宣告struct結構的時候,屬性的右側還有小公尺點括起來的內容。形如 1 type user struct 這個小公尺點裡的內容是用來幹什麼的呢?要比較詳細的了解這個,要先了解一下golang的基礎,在golang中,命名都是推薦都是用駝峰方式,並且在首字母大...

go 語言中的繼承

go 語言中可以通過匿名field來實現繼承的效果,type t1 struct func t t1 log func t t1 print type t2 struct t2 t2 可以通過t2.log 直接訪問t1的method,就像物件導向的繼承之後一樣訪問,不過這裡要注意的傳遞到log的是t...