2013-09-08 2 views
0

Посмотрите на этом надрезе нашел на hereGo Строка после объявления переменной

 
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) 
    } 

} 

Я могу понять, в struct Person, он имеет вар под названием Id, который имеет типа int, но как насчет вещи

xml:"person"
после int? Что это значит? Благодарю.

ответ

2

Это тег структуры. Библиотеки используют их для комментирования полей структуры с дополнительной информацией; в этом случае модуль encoding/xml использует эти теги структуры для обозначения тегов, соответствующих строкам.