Чтобы получить имя функции Go, вы можете использовать информацию об отражении или времени выполнения. Вот несколько способов сделать это:
Метод 1: использование отражения
package main
import (
"fmt"
"reflect"
)
func MyFunction() {
fmt.Println("Hello, World!")
}
func main() {
functionName := reflect.ValueOf(MyFunction).Pointer().Name()
fmt.Println("Function Name:", functionName)
}
Метод 2: использование runtime.FuncForPC
package main
import (
"fmt"
"runtime"
)
func MyFunction() {
fmt.Println("Hello, World!")
}
func main() {
pc := reflect.ValueOf(MyFunction).Pointer()
functionName := runtime.FuncForPC(pc).Name()
fmt.Println("Function Name:", functionName)
}
Метод 3. Использование специального пакета среды выполнения
package main
import (
"fmt"
"runtime"
)
func MyFunction() {
fmt.Println("Hello, World!")
}
func GetFunctionName(f interface{}) string {
pc := reflect.ValueOf(f).Pointer()
return runtime.FuncForPC(pc).Name()
}
func main() {
functionName := GetFunctionName(MyFunction)
fmt.Println("Function Name:", functionName)
}
В приведенных выше примерах в качестве примера используется функция MyFunction. Замените его на функцию, имя которой вы хотите получить.