зеркало из https://github.com/go-gitea/yaml.git
42 строки
749 B
Go
42 строки
749 B
Go
|
package yaml_test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"log"
|
||
|
|
||
|
"gopkg.in/yaml.v2"
|
||
|
)
|
||
|
|
||
|
// An example showing how to unmarshal embedded
|
||
|
// structs from YAML.
|
||
|
|
||
|
type StructA struct {
|
||
|
A string `yaml:"a"`
|
||
|
}
|
||
|
|
||
|
type StructB struct {
|
||
|
// Embedded structs are not treated as embedded in YAML by default. To do that,
|
||
|
// add the ",inline" annotation below
|
||
|
StructA `yaml:",inline"`
|
||
|
B string `yaml:"b"`
|
||
|
}
|
||
|
|
||
|
var data = `
|
||
|
a: a string from struct A
|
||
|
b: a string from struct B
|
||
|
`
|
||
|
|
||
|
func ExampleUnmarshal_embedded() {
|
||
|
var b StructB
|
||
|
|
||
|
err := yaml.Unmarshal([]byte(data), &b)
|
||
|
if err != nil {
|
||
|
log.Fatal("cannot unmarshal data: %v", err)
|
||
|
}
|
||
|
fmt.Println(b.A)
|
||
|
fmt.Println(b.B)
|
||
|
// Output:
|
||
|
// a string from struct A
|
||
|
// a string from struct B
|
||
|
}
|