> 백엔드 개발 > Golang > Go에서 프로그래밍 방식으로 함수 이름을 검색할 수 있나요?

Go에서 프로그래밍 방식으로 함수 이름을 검색할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-24 10:02:55
원래의
892명이 탐색했습니다.

Can Go Programmatically Retrieve a Function's Name?

Go에서 함수 이름 검색

질문:

Go에서 프로그래밍 방식으로 함수 이름을 검색하는 것이 가능합니까? ? 예를 들어 foo() 함수가 있으면 GetFunctionName(foo)과 같은 메서드를 사용하여 이름을 확인할 수 있습니까?

답변:

예, 가능합니다. Runtime.FuncForPC를 사용하여 Go에서 함수 이름을 얻습니다. 함수를 사용합니다.

해결책:

다음은 다음을 사용하는 해결 방법입니다. Runtime.FuncForPC:

package main

import (
    "fmt"
    "reflect"
    "runtime"
)

func foo() {}

func GetFunctionName(i interface{}) string {
    return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name()
}

func main() {
    fmt.Println("name:", GetFunctionName(foo))
}
로그인 후 복사

설명:

  • reflect.ValueOf(i).Pointer()는 i.
  • runtime.FuncForPC는 포인터를 가져와 런타임을 반환합니다.Func value.
  • runtime.Func.Name()은 Runtime.Func 값과 연결된 함수의 이름을 반환합니다.
GetFunctionName(foo)를 호출하면 결과는 "foo" 문자열입니다.

위 내용은 Go에서 프로그래밍 방식으로 함수 이름을 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿