go - Go-Lang 中的reflect.MakeFunc 的功能

标签 go

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

最佳答案

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

关于go - Go-Lang 中的reflect.MakeFunc 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882089/

相关文章:

go - 为特定包运行 go test

vim - 使用 Vim(不是 gvim)通过 GDB 调试 Go

string - 用空格解码base64

golang - 为什么++ 和 -- 在表达式中不起作用?

go - panic 并从包裹中恢复

vim - 保存 *.go 文件时如何禁止 vim-go 自动构建

ssl - 如何为 Go 服务器应用程序设置 Let's Encrypt

bash - 如何从其他目录执行go get?

docker - docker 内部的 Golang 错误

json - 在 Go 中解码 json