91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Go語言結構體標簽怎么使用

小樊
81
2024-11-08 13:17:15
欄目: 編程語言

在Go語言中,結構體標簽(Struct Tags)是一種元信息,用于為結構體的字段提供額外的說明。它們通常用于JSON編碼/解碼、數據庫映射等場景。要使用結構體標簽,需要在字段聲明后面加上一個反引號(`),然后包含鍵值對,用冒號分隔。

以下是一些常見的使用場景:

  1. JSON編碼/解碼:
package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name    string `json:"name"`
	Age     int    `json:"age"`
	Address string `json:"address,omitempty"`
}

func main() {
	p := Person{
		Name:    "Alice",
		Age:     30,
		Address: "",
	}

	data, _ := json.Marshal(p)
	fmt.Println(string(data)) // 輸出:{"name":"Alice","age":30}

	var p2 Person
	_ = json.Unmarshal(data, &p2)
	fmt.Println(p2) // 輸出:{Alice 30}
}

在這個例子中,我們為Person結構體的字段添加了JSON標簽,用于指定JSON編碼時的鍵名。omitempty選項表示如果字段值為空,則在編碼時忽略該字段。

  1. 數據庫映射:
package main

import (
	"fmt"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/sqlite"
)

type User struct {
	ID        uint   `gorm:"primary_key"`
	FirstName string `gorm:"column:first_name"`
	LastName  string `gorm:"column:last_name"`
}

func main() {
	db, _ := gorm.Open("sqlite3", "test.db")
	defer db.Close()

	db.AutoMigrate(&User{})

	user := User{FirstName: "John", LastName: "Doe"}
	db.Create(&user)

	var users []User
	db.Find(&users)
	fmt.Println(users) // 輸出:[{1 John Doe}]
}

在這個例子中,我們使用GORM庫為User結構體的字段添加了數據庫映射標簽,用于指定數據庫表中的列名。

這些只是結構體標簽的一些常見用法。你可以根據需要為結構體的字段添加更多的標簽,以滿足不同的需求。

0
尼玛县| 崇阳县| 敦煌市| 都安| 永昌县| 丰县| 乌拉特前旗| 共和县| 五峰| 揭阳市| 柳江县| 衡水市| 凭祥市| 鹤岗市| 大厂| 亳州市| 宣威市| 新乡县| 富锦市| 忻城县| 洪洞县| 安塞县| 贞丰县| 黄骅市| 闻喜县| 民县| 沅江市| 乃东县| 潞城市| 安丘市| 稻城县| 通江县| 醴陵市| 阳西县| 商城县| 射阳县| 辽中县| 英超| 日土县| 东阿县| 门头沟区|