diff options
Diffstat (limited to 'libgo/go/reflect/example_test.go')
-rw-r--r-- | libgo/go/reflect/example_test.go | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/libgo/go/reflect/example_test.go b/libgo/go/reflect/example_test.go index 8ebf976..9e2b9b3 100644 --- a/libgo/go/reflect/example_test.go +++ b/libgo/go/reflect/example_test.go @@ -1,4 +1,4 @@ -// Copyright 2012 The Go Authors. All rights reserved. +// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -67,6 +67,34 @@ func ExampleStructTag() { // blue gopher } +func ExampleStructTag_Lookup() { + type S struct { + F0 string `alias:"field_0"` + F1 string `alias:""` + F2 string + } + + s := S{} + st := reflect.TypeOf(s) + for i := 0; i < st.NumField(); i++ { + field := st.Field(i) + if alias, ok := field.Tag.Lookup("alias"); ok { + if alias == "" { + fmt.Println("(blank)") + } else { + fmt.Println(alias) + } + } else { + fmt.Println("(not specified)") + } + } + + // Output: + // field_0 + // (blank) + // (not specified) +} + func ExampleTypeOf() { // As interface types are only used for static typing, a // common idiom to find the reflection Type for an interface |