Go에서 호출자 기능에 대한 정보를 얻을 수 있습니다. 이를 통해 호출 스택을 추적하고, 호출 컨텍스트를 식별하고, 다양한 디버깅 또는 프로파일링 작업을 수행할 수 있습니다.
발신자 정보를 검색하는 기본 방법은 런타임입니다.Caller 기능. 정보를 검색하기 전에 건너뛸 스택 프레임 수를 나타내는 정수 인수를 사용합니다. 기본적으로 한 프레임을 건너뛰고 즉시 호출자에 대한 데이터를 제공합니다.
runtime.Caller 함수는 uintptr, 파일 경로를 나타내는 문자열, 줄 번호를 나타내는 정수 및 실행 여부를 나타내는 부울을 반환합니다. 검색이 성공했습니다.
발신자 파일 이름 검색 시연 및 줄 번호:
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() }
더 자세한 정보를 보려면 Runtime.FuncForPC를 사용하여 호출자 함수를 나타내는 *Func 개체를 얻을 수 있습니다. 이 객체는 함수 이름 및 패키지 경로와 같은 추가 데이터에 대한 액세스를 제공합니다.
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에서 호출자 함수에 대한 정보를 쉽게 수집할 수 있으며 이는 디버깅, 프로파일링에 유용할 수 있습니다. , 기타 고급 프로그래밍 시나리오.
위 내용은 Go에서 발신자 기능 정보를 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!