포인터 필드 디버깅
Go에서 포인터 필드가 포함된 구조체를 인쇄하면 일반적으로 실제 값이 아닌 메모리 주소가 출력됩니다. 이는 디버깅 중에, 특히 수많은 포인터 필드를 처리할 때 불편할 수 있습니다.
포인터 필드 역참조
포인터 필드의 기본 값을 표시하려면 수동으로 다음을 수행하는 것이 좋습니다. 별표 연산자(*)를 사용하여 각 필드를 역참조합니다. 그러나 이 접근 방식은 여러 포인터 필드가 있는 구조체의 경우 지루합니다.
go-spew 사용
Go는 이러한 시나리오를 디버깅하기 위한 강력한 도구인 go-spew 패키지를 제공합니다. . 이 패키지는 모든 값의 구조를 자세히 알아볼 수 있는 쉬운 방법을 제공합니다.
예
다음 코드를 고려하세요.
package main import ( "fmt" "github.com/davecgh/go-spew/spew" ) type SomeStruct struct { Field1 string Field2 int Field3 *somePointer } type somePointer struct { field string } func main() { s := SomeStruct{ Field1: "Yahoo", Field2: 500, Field3: &somePointer{"I want to see what is in here"}, } spew.Dump(s) }
이 코드를 실행하면 다음 출력이 인쇄됩니다.
(main.SomeStruct) { Field1: (string) "Yahoo", Field2: (int) 500, Field3: (*main.somePointer)(0x2102a7230)({ field: (string) "I want to see what is in here" }) }
보시다시피 go-spew 패키지는 포인터 필드의 기본 값을 포함하여 더 자세하고 구조화된 출력을 제공합니다. 이를 통해 구조체의 내용을 디버깅하고 이해하는 것이 훨씬 쉬워집니다.
위 내용은 디버깅하는 동안 Go 구조체에 포인터 필드의 기본 값을 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!