summaryrefslogtreecommitdiff
path: root/src/pkg/reflect/example_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/reflect/example_test.go')
-rw-r--r--src/pkg/reflect/example_test.go66
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
-}