diff options
author | Tianon Gravi <admwiggin@gmail.com> | 2015-01-15 11:54:00 -0700 |
---|---|---|
committer | Tianon Gravi <admwiggin@gmail.com> | 2015-01-15 11:54:00 -0700 |
commit | f154da9e12608589e8d5f0508f908a0c3e88a1bb (patch) | |
tree | f8255d51e10c6f1e0ed69702200b966c9556a431 /src/pkg/reflect/example_test.go | |
parent | 8d8329ed5dfb9622c82a9fbec6fd99a580f9c9f6 (diff) | |
download | golang-upstream/1.4.tar.gz |
Imported Upstream version 1.4upstream/1.4
Diffstat (limited to 'src/pkg/reflect/example_test.go')
-rw-r--r-- | src/pkg/reflect/example_test.go | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/pkg/reflect/example_test.go b/src/pkg/reflect/example_test.go deleted file mode 100644 index cca28eeec..000000000 --- a/src/pkg/reflect/example_test.go +++ /dev/null @@ -1,66 +0,0 @@ -// 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. - -package reflect_test - -import ( - "fmt" - "reflect" -) - -func ExampleMakeFunc() { - // swap is the implementation passed to MakeFunc. - // It must work in terms of reflect.Values so that it is possible - // to write code without knowing beforehand what the types - // will be. - swap := func(in []reflect.Value) []reflect.Value { - return []reflect.Value{in[1], in[0]} - } - - // makeSwap expects fptr to be a pointer to a nil function. - // It sets that pointer to a new function created with MakeFunc. - // When the function is invoked, reflect turns the arguments - // into Values, calls swap, and then turns swap's result slice - // into the values returned by the new function. - makeSwap := func(fptr interface{}) { - // fptr is a pointer to a function. - // Obtain the function value itself (likely nil) as a reflect.Value - // so that we can query its type and then set the value. - fn := reflect.ValueOf(fptr).Elem() - - // Make a function of the right type. - v := reflect.MakeFunc(fn.Type(), swap) - - // Assign it to the value fn represents. - fn.Set(v) - } - - // Make and call a swap function for ints. - var intSwap func(int, int) (int, int) - makeSwap(&intSwap) - fmt.Println(intSwap(0, 1)) - - // Make and call a swap function for float64s. - var floatSwap func(float64, float64) (float64, float64) - makeSwap(&floatSwap) - fmt.Println(floatSwap(2.72, 3.14)) - - // Output: - // 1 0 - // 3.14 2.72 -} - -func ExampleStructTag() { - type S struct { - F string `species:"gopher" color:"blue"` - } - - s := S{} - st := reflect.TypeOf(s) - field := st.Field(0) - fmt.Println(field.Tag.Get("color"), field.Tag.Get("species")) - - // Output: - // blue gopher -} |