December 22nd, 2019
前言:
平常在臉書社群或是 Slack channel (https://t.me/golangtw) 都會聽到一些常問的問題,決定把它整理一下,變成這篇文章,也希望讓更多人經過搜尋來了解與得到解答。 由於經常詢問的問題還不少,這算是一個系列的整理,希望能透過整理成文章的方式給予大家比較深入的了解。
第二篇是 Struct Tags ,希望大家在處理 XML 與 JSON 資料上面,能夠更了解。
相關系列文章整理:
Struct Tags:
請問一下,像這種直接在 struct 成員宣告後面放字串的,是什麼語法啊?
type Person struct {
Name string `form:"name"`
Address string `form:"address"`
}
我在官方文件中找不到
這個叫做 struct tags
Go Wiki: Well known struct tags,通常是用在 JSON 資料格式定義的時候。 以下拿一個簡單的範例來舉例:
package main
import "fmt"
type User struct {
Name string `example:"name"`
}
func (u *User) String() string {
return fmt.Sprintf("Hi! My name is %s", u.Name)
}
func main() {
u := &User{
Name: "Sammy",
}
fmt.Println(u)
}
(範例來自:How To Use Struct Tags in Go)
https://golang.org/pkg/reflect/ func (StructTag) 那邊有一些範例。
其實 Golang 本身提供不少種類的 Struct Tags , JSON, XML, bson 都算是比較常見的格式。
https://github.com/golang/go/issues/23637