go struct tags
- A struct tag is a string literal (because it has the string type)
- Key is an unquoted string literal
- Value is a quoted string literal
- Key and value are separated by a colon (:). A key together with a value, separated by the colon is called a “key value pair“
- A struct tag can contain multiple key value pairs (optional). The key-value pairs are separated by a space.
- Not part of the definition is the options setting. Packages like encoding/json read the value as a comma-separated list. Anything after the first comma is part of the options, i.e: “foo,omitempty,string“. Here the value has a name called “foo” and options [“omitempty”, “string”]
- Because the struct tag is a string literal, it needs to be quoted either with a double quote or backtick. Because the value has to be quoted as well we always use backticks.
参考资料
The ultimate guide to writing a Go tool
https://arslan.io/2017/09/14/the-ultimate-guide-to-writing-a-go-tool/
Tags in Golang
https://medium.com/golangspec/tags-in-golang-3e5db0b8ef3e
Go Tags explained
https://flaviocopes.com/go-tags/
最后修改于 2019-03-28