Golang에서는 호출자 함수에 대한 통찰력을 얻을 수 있습니다. 다음 코드 조각을 고려하십시오.
func foo() { // Do something } func main() { foo() }
질문이 생깁니다. foo가 메인에서 호출되었는지 어떻게 확인할 수 있습니까? C#과 같은 다른 언어에서는 CallerMemberName과 같은 속성을 사용하여 이 작업을 용이하게 합니다.
다행히 Golang은 Runtime.Caller 함수가 포함된 솔루션을 제공합니다.
func Caller(skip int) (pc uintptr, file string, line int, ok bool)
예제 #1: 발신자 파일 이름 및 회선 인쇄 숫자
package main import ( "fmt" "runtime" ) func foo() { _, file, no, ok := runtime.Caller(1) if ok { fmt.Printf("called from %s#%d\n", file, no) } } func main() { foo() }
예제 #2: Runtime.FuncForPC를 사용하여 추가 정보 검색
package main import ( "fmt" "runtime" ) func foo() { pc, _, _, ok := runtime.Caller(1) details := runtime.FuncForPC(pc) if ok & details != nil { fmt.Printf("called from %s\n", details.Name()) } } func main() { foo() }
이러한 예를 활용하면 다음에 대한 통찰력을 쉽게 얻을 수 있습니다. Go의 호출자 기능 정보
위 내용은 Golang에서 호출자 기능 정보를 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!