필드 문자열() 메서드를 사용하여 구조체를 인쇄하는 방법
fmt.Println()은 구조체의 기본 표현을 인쇄합니다. 기본적으로 String() 인터페이스. 모든 구조체에 대해 String()을 구현하는 것은 지루할 수 있으며 필드가 추가되거나 제거될 때 업데이트가 필요합니다.
사용자 정의 인쇄를 위한 도우미 함수
이 제한 사항을 해결하려면 다음을 수행하세요. 리플렉션(패키지 반영)을 활용하는 도우미 함수 활용:
func PrintStruct(s interface{}, names bool) string { // ... // (function body as provided in the answer) }
이 함수는 구조체 필드를 반복하고 해당하는 경우 String() 값을 검색합니다.
fmt.Println(PrintStruct(a, true))
구조체별 String() 메서드
또는 다음과 같은 구조체에 대해 String() 메서드를 정의할 수 있습니다. PrintStruct() 함수를 호출합니다.
func (a A) String() string { return PrintStruct(a, true) }
이 메서드는 구조체 필드의 동적 변경 사항을 처리합니다. String() 메서드를 수정하지 않고
사용
도우미 함수 또는 구조체별 String() 메서드를 사용하면 해당 필드 String을 사용하여 구조체를 편리하게 인쇄할 수 있습니다. () 값:
// using the PrintStruct() function fmt.Println(PrintStruct(a, true)) // using the custom String() method (if defined) fmt.Println(a)
위 내용은 String() 메서드를 사용하여 필드가 포함된 Go 구조체를 효과적으로 인쇄하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!