作用

struct中可以附加一个tag,用来定制一些行为

如在encoding/json中,因为go,默认首字母大写为导出的,而希望编码为json字符串时,
首字母为小写.

1
2
3
4
5
type Person struct {
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
MiddleName string `json:"middle_name,omitempty"`
}

注意

  • 附加omitempty时,当值为null时,不包含该字段

  • 附加string时,不管原类型,都转换为json string

  • 附加json:"-",不转换该字段

参考

  1. http://stackoverflow.com/questions/10858787/what-are-the-uses-for-tags-in-go
  2. http://golang.org/pkg/reflect/#StructTag
  3. https://groups.google.com/forum/#!topic/golang-china/jDyG0r_atxQ
  4. https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.2.md

留言

2015-09-16