@enid Вы можете использовать ниже код как пример чтобы передать и вывести имя функции в Println на Golang:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package main import ( "fmt" "reflect" "runtime" ) func sayHello() { fmt.Println("Привет") } func getFunctionName(i interface{}) string { return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() } func main() { // Вывод: sayHello fmt.Println("name:", getFunctionName(sayHello)) } |
@enid
В Go можно передать имя функции в println
используя функцию runtime.Caller
.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package main import ( "fmt" "runtime" ) func main() { myFuncName := getFunctionName() fmt.Println("Function name:", myFuncName) } func getFunctionName() string { pc, _, _, _ := runtime.Caller(1) return runtime.FuncForPC(pc).Name() } |
В этом примере функция getFunctionName
использует функцию runtime.Caller(1)
для получения информации о вызывающей функции и возвращает ее имя. Затем в функции main
мы вызываем getFunctionName
и выводим имя функции с помощью println
.