在Go-Lang中运行reflect.MakeFunc

时间:2013-07-26 13:05:20

标签: go

我收到一个错误:undefined reflect.MakeFunc ..为什么会这样?

package main

import (
        "fmt"
        "reflect"
)

func main() {
        swap := func(in []reflect.Value) []reflect.Value {
                return []reflect.Value{in[1], in[0]}
        }
        makeSwap := func(fptr interface{}) {
                fn := reflect.ValueOf(fptr).Elem()
                fn.Set(reflect.MakeFunc(fn.Type(), swap))
        }
        var intSwap func(int, int) (int, int)
        makeSwap(&intSwap)
        fmt.Println(intSwap(0, 1))
        var floatSwap func(float64, float64) (float64, float64)
        makeSwap(&floatSwap)
        fmt.Println(floatSwap(2.72, 3.14))
}

1 个答案:

答案 0 :(得分:2)

使用Go的发布版本:http://play.golang.org/p/Rw4uBFlAyc