例如,我想做这样的事情,package mainimport ( "fmt" "reflect")func main() { var f func(int) int v := reflect.ValueOf(f) fmt.Println(v.ReturnType() == reflect.TypeOf(1)) // => true}ReturnType方法在反射包中不存在。我的问题是,我可以在不使用cgo.
1 回答
ITMISS
TA贡献1871条经验 获得超8个赞
而不是使用reflect.ValueOf(f)try reflect.TypeOf(f)。该Type类型有两个相关的方法,名为NumOut和Out(int)。要按顺序获取所有返回值的类型,可以使用以下循环
typ := reflect.TypeOf(f)
for i := 0; i < typ.NumOut(); i++ {
returnType := typ.Out(i)
// do something with returnType
}
如果您确定您的函数只有一个返回值,您始终可以使用 获取它Out(0),确保您的输入正确的标准免责声明适用。
- 1 回答
- 0 关注
- 319 浏览
添加回答
举报
0/150
提交
取消