成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Golang中的結構體標簽Struct Tag詳解

開發 前端
結構體標記使用Key:"Value"的格式來定義,其中key是標記的名稱,Value是該標記的值。一個結構體字段可以有多個標記,每個標記之間使用空格分隔。

Struct Tag

在Golang中,結構體標記(Struct Tag),也稱為結構體注釋(Struct Annotation),是一種對Go結構體中的字段進行元數據附加的機制。這些標記是用反引號(`)包裹起來的鍵值對,可以在運行時通過反射機制獲取并處理。

結構體標記使用key:"value"的格式來定義,其中key是標記的名稱,value是該標記的值。一個結構體字段可以有多個標記,每個標記之間使用空格分隔。

使用方法和代碼示例

看一個例子:

type User struct {
    Name string `json:"name"`
    Age int `json:"age"`
}

注意如上結構體中反引號引起來的內容就是Golang中的Struct Tag,接下來看一下它的作用,如果輸出json格式

u := &User{Name: "xiaohong", Age: "18"}
j, _ := json.Marshal(u)
fmt.Println(string(j))

輸出如下內容

{"name": "xiaohong","age": 18}

如果去掉StructTag會輸出什么呢,看如下例子:

type User struct {
  Name string
  Age int
}
u := &User{Name: "xiaohong", Age: "18"}
j, _ := json.Marshal(u)
fmt.Println(string(j))

輸出如下內容:

{"Name": "xiaohong","Age": 18}

可以看出加上Struct Tag后,輸出的內容跟著發生了變化。所以Struct Tag通常是用來在將struct編碼轉換的過程中提供一些轉換規則信息.

一般來講,Tag 都是以 key:"value" 鍵值對的形式,如果有多個鍵值對,用空格分隔:

type User struct {
    Name string `json:"name" xml:"name"`
}

key 一般指的是要使用的包名,比如這里的json表示這個Name字段會被 ```encoding/json```包使用和處理。

Struct Tag可以使用reflect包中的方法來獲取, Struct Tag是string基本類型的別名:type StructTag string,約定俗成的規則是以 key:"value" 這樣的鍵值對。

// 獲取tag中的內容
u := &User{Name: "xiaohong", Age: "18"}
t := reflect.TypeOf(u)
field := t.Elem().Field(0)
fmt.Println(field.Tag.Get("json"))

輸出內容如下:

name
責任編輯:姜華 來源: 今日頭條
相關推薦

2021-07-12 05:05:59

Golang語言字段

2022-08-19 14:38:52

C語言結構體struct

2023-08-28 17:16:51

Golangio 包

2021-08-02 07:57:02

Struct指針函數

2009-08-13 14:46:03

C#結構體定義

2021-11-02 14:54:41

Go結構體標簽

2021-08-02 07:02:18

數據結構體Struct

2022-01-09 23:04:19

語言打印結構體

2021-11-15 06:56:46

Go語言Tag

2010-05-24 18:32:16

SVN中tag bra

2025-03-31 01:00:10

2009-08-13 15:41:50

C#結構體指針

2023-08-03 08:48:07

Golang接口

2023-06-27 08:45:19

原子操作Golang

2023-05-29 09:25:38

GolangSelect

2023-03-30 07:52:03

Golang接口

2023-11-27 15:02:37

BytesGolang

2023-08-31 09:28:12

Golang可導出函數

2011-04-11 13:00:08

C++結構體枚舉

2023-06-05 09:23:00

Golang同步工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久黄色| 国产成人免费视频 | 国产精品视频一区二区三区四区国 | 91中文字幕在线观看 | 亚洲一区久久 | 久久精品欧美一区二区三区不卡 | 二区中文| 999热精品视频 | 欧美精品中文字幕久久二区 | 久久这里只有 | 色婷婷一区二区三区四区 | 欧美xxxx色视频在线观看免费 | 一区二区三区av | 国产精品成人一区 | 久草在线 | 美女视频一区二区三区 | 狠狠干av | 久久蜜桃精品 | 亚洲精品中文字幕在线观看 | 成人精品一区二区三区 | 国产一区二区 | 国产精品性做久久久久久 | 日本免费在线 | 国产精品久久久久久久免费大片 | 国产91精品久久久久久久网曝门 | 国产日韩一区 | 中文字幕av一区二区三区 | 久久精品一区二区视频 | 久久蜜桃av一区二区天堂 | 久久精品国产99国产精品 | 中文字幕不卡在线观看 | 性天堂网 | 国产伦精品一区二区三区精品视频 | 7799精品视频天天看 | 久久综合久色欧美综合狠狠 | 日韩免费视频 | 香蕉视频91 | 99re视频在线 | 国产aaaaav久久久一区二区 | 国产农村妇女毛片精品久久麻豆 | 国产区视频在线观看 |