例如,我想做這樣的事情,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貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
而不是使用reflect.ValueOf(f)try reflect.TypeOf(f)。該Type類型有兩個(gè)相關(guān)的方法,名為NumOut和Out(int)。要按順序獲取所有返回值的類型,可以使用以下循環(huán)
typ := reflect.TypeOf(f)
for i := 0; i < typ.NumOut(); i++ {
returnType := typ.Out(i)
// do something with returnType
}
如果您確定您的函數(shù)只有一個(gè)返回值,您始終可以使用 獲取它Out(0),確保您的輸入正確的標(biāo)準(zhǔn)免責(zé)聲明適用。
- 1 回答
- 0 關(guān)注
- 342 瀏覽
添加回答
舉報(bào)
0/150
提交
取消