我有一個變量,它的值是一個函數(shù),我想知道該函數(shù)的參數(shù)是什么,特別是參數(shù)的類型和返回值的類型。我可以在 Go 中檢索這些信息嗎?在 Python 中,我可以使用 inspect.signature 函數(shù)來獲取有關(guān)函數(shù)的信息——它的參數(shù)和該函數(shù)的參數(shù)類型以及返回值的類型。例如在 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貢獻(xiàn)1820條經(jīng)驗 獲得超3個贊
使用反射包檢查類型:
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)
}
- 1 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消