例如,我想做這樣的事情,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 關注
- 343 瀏覽
添加回答
舉報
0/150
提交
取消