Thursday, August 1, 2019

syntax - Go String after variable declaration



Take a look at this snip found at here





import (
"encoding/xml"
"fmt"
"os"
)

func main() {
type Address struct {

City, State string
}
type Person struct {
XMLName xml.Name `xml:"person"`
Id int `xml:"id,attr"`
FirstName string `xml:"name>first"`
LastName string `xml:"name>last"`
Age int `xml:"age"`
Height float32 `xml:"height,omitempty"`
Married bool

Address
Comment string `xml:",comment"`
}

v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42}
v.Comment = " Need more details. "
v.Address = Address{"Hanga Roa", "Easter Island"}

enc := xml.NewEncoder(os.Stdout)
enc.Indent(" ", " ")

if err := enc.Encode(v); err != nil {
fmt.Printf("error: %v\n", err)
}

}



I can understand in the struct Person, It has a var called Id, which is of type int, but what about the stuff

xml:"person" 
after int? What does it mean? Thanks.

Answer




It's a struct tag. Libraries use these to annotate struct fields with extra information; in this case, the module encoding/xml uses these struct tags to denote which tags correspond to the struct fields.


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...