在 golang 中,我们可以使用 reflect.typeof() 函数获取函数类型:获取函数类型:fntype := reflect.typeof(add)打印函数类型:fmt.println(\"函数类型:\", fntype)获取函数名称:fmt.println(\"函数名称:\", fntype.name())获取函数参数类型:for i := 0; i
如何在 Golang 中获取函数的类型?
在 Golang 中,我们可以使用 reflect.TypeOf()
函数来获取任何变量或表达式的类型,包括函数。该函数返回一个 reflect.Type
对象,它提供了有关类型的信息,包括名称、底层类型、方法和字段。
以下是如何使用 reflect.TypeOf()
来获取函数类型的代码示例:
package main import ( "fmt" "reflect" ) func add(a, b int) int { return a + b } func main() { // 获取 add 函数的类型 fnType := reflect.TypeOf(add) // 打印函数类型 fmt.Println("函数类型:", fnType) // 获取函数名称 fmt.Println("函数名称:", fnType.Name()) // 获取函数参数类型 numInParams := fnType.NumIn() fmt.Println("参数类型:") for i := 0; i < numInParams; i++ { paramType := fnType.In(i) fmt.Println("-", paramType) } // 获取函数返回值类型 numOutParams := fnType.NumOut() fmt.Println("返回值类型:") for i := 0; i < numOutParams; i++ { resultType := fnType.Out(i) fmt.Println("-", resultType) } }