> 백엔드 개발 > Golang > Golang에서 호출자 기능 정보를 어떻게 얻을 수 있나요?

Golang에서 호출자 기능 정보를 어떻게 얻을 수 있나요?

Susan Sarandon
풀어 주다: 2024-12-26 05:50:32
원래의
476명이 탐색했습니다.

How Can I Get Caller Function Information in Golang?

Golang에서 호출자 함수 정보 검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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