在Go的运行时获取函数参数

How to get function arguments in Go at runtime, all I know is only how to get function name:

pc, file, line, ok := runtime.Caller(2)
rt := runtime.FuncForPC(pc)
return rt.Name() // Foo

What I need is something like this:

Foo(1,2,3)
// Foo_1_2_3

Not a full answer, but maybe this can help :

package main

import (
    "fmt"
    "reflect"
)

func main() {
    fmt.Println(reflect.TypeOf(f1))
    for index := 0; index < reflect.TypeOf(f1).NumIn(); index++ {
        fmt.Println(reflect.TypeOf(f1).In(index))
    }
}

func f1(a int, b string) {}

prints :

func(int, string) int string