2

我收到一个错误:未定义的 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))
}
4

1 回答 1

2

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

于 2013-07-26T13:19:21.910 回答