为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查函数参数和类型

如何检查函数参数和类型

Go
qq_花开花谢_0 2022-06-21 10:04:46
我有一个变量,它的值是一个函数,我想知道该函数的参数是什么,特别是参数的类型和返回值的类型。我可以在 Go 中检索这些信息吗?在 Python 中,我可以使用 inspect.signature 函数来获取有关函数的信息——它的参数和该函数的参数类型以及返回值的类型。例如在 Python 中,我可以这样做:from inspect import signaturedef a(b: int) -> str:    return "text"sig = signature(a)  // contains information about parameters and returned value如何在 Go 中做到这一点?
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

使用反射包检查类型:


t := reflect.TypeOf(f)  // get reflect.Type for function f.

fmt.Println(t)          // prints types of arguments and results


fmt.Println("Args:")

for i := 0; i < t.NumIn(); i++ {

    ti := t.In(i)       // get type of i'th argument

    fmt.Println("\t", ti) 

}

fmt.Println("Results:")

for i := 0; i < t.NumOut(); i++ {

    ti := t.Out(i)      // get type of i'th result

    fmt.Println("\t", ti)

}


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号