Go語言從入門到放棄 結構體常見的tag

2022-01-23 02:59:33 字數 920 閱讀 1361

tag是結構體中某個字段別名, 可以定義多個, 空格分隔

type student struct

使用空格來區分多個tag,所以格式要尤為注意

tag相當於該字段的乙個屬性標籤, 在go語言中, 一些包通過tag來做相應的判斷

舉個例子, 比如我們有乙個結構體

type student struct

然後我們將乙個該結構體例項化乙個 s1

s1 :=student

再將 s1 序列化

v, err := json.marshal(s1) //

json.marshal方法,json序列化,返回值和報錯資訊

if err != nil

fmt.println(

string(v)) //

byte轉string, json

此時 string(v) 為 

因為在 go 語言中, 結構體字段要想為外部所用就必須首字母大寫, 但是如果這個 s1 是返回給前端的, 那每個欄位都首字母大寫就很怪, 此時我們可以給 student 加tag解決

結構體修改為

type student struct

序列化時, 會自己找到名為 json 的tag, 根據值來進行json後的賦值

因此 string(v) 為

json序列化或反序列化時字段的名稱

sqlx模組中對應的資料庫欄位名

gin框架中對應的前端的資料欄位名

搭配 form 使用, 預設如果沒查詢到結構體中的某個欄位則不報錯值為空, binding為 required 代表沒找到返回錯誤給前端

Go語言從入門到放棄 變數

使用關鍵字var var v1 int 整型 var v2 string 字串 var v3 10 int 陣列 var v4 int 陣列切片 var v5 struct var v6 int 指標 var v7 map string map,key為string型別,value為int型別還有一...

C語言 結構體從入門到精通

最近老師在講解資料結構的內容,當老師講資料結構的 時,經常用到結構體這個東西,趁機複習下結構體的內容。結構體的定義 把一些基本型別的資料組合在一起而形成的乙個新的複合型的資料型別,這個就叫做結構體。為什麼需要結構體 為了表示一些複雜的事物,而基本的資料型別無法滿足相應的請求。結構體的一般形式 申明乙...

Go從入門到放棄(二)資料型別 控制結構

本文主要介紹go語言的資料型別 控制結構 資料型別 基礎型別 浮點數 布林型 字串 go 語言中的字串可以表示為任意的資料 字串和數字互 go 語言是強型別的語言,也就是說不同型別的變數是無法相互使用和計算的。不同型別的變數在進行賦值或者計算前,需要先進行型別轉換 strings 包 它是用於處理字...