디버깅을 위한 필드 역참조
포인터가 포함된 Go 구조체를 인쇄할 때 출력에는 일반적으로 실제 값 대신 메모리 주소가 표시됩니다. 디버깅을 향상시키려면 역참조된 값을 인쇄하는 것이 바람직합니다.
해결책: go-spew 패키지 사용
go-spew 패키지는 편리한 솔루션을 제공합니다. 포인터인 필드를 포함하여 구조체를 덤프하고 역참조된 값도 표시하는 데 사용할 수 있습니다.
예:
다음 Go 구조체를 고려하세요.
package main import ( "github.com/davecgh/go-spew/spew" ) type ( SomeStruct struct { Field1 string Field2 int Field3 *somePointer } somePointer struct { field string } )
주 함수에서 SomeStruct의 인스턴스를 생성하고 spew.Dump에 전달합니다.
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" }) }
이제 원하는 역참조 값("여기에 무엇이 있는지 보고 싶습니다")이 Field3 필드 아래에 표시됩니다. 이를 통해 디버깅 중에 복잡한 구조체의 포인터를 쉽게 검사할 수 있습니다.
위 내용은 효과적인 디버깅을 위해 Go 구조체에서 역참조된 포인터 값을 어떻게 인쇄할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!