> 백엔드 개발 > Golang > Go에서 내보낼 구조체 필드를 어떻게 제어합니까?

Go에서 내보낼 구조체 필드를 어떻게 제어합니까?

DDD
풀어 주다: 2024-12-01 00:34:11
원래의
229명이 탐색했습니다.

How Do I Control Which Struct Fields Are Exported in Go?

Go에서 구조체 필드 내보내기

Go에서 구조체를 사용하여 데이터를 나타낼 때 필드 이름의 대문자 사용을 고려하는 것이 중요합니다. 관례적으로 대문자로 시작하는 필드만 내보내어 현재 패키지 외부에 표시되도록 합니다.

CouchDB 구조체 문제

제공된 코드에서 Person 구조체에는 Age라는 필드가 있습니다. 대문자, 이름은 소문자입니다. 결과적으로 구조체가 CouchDB 라이브러리의 PostDocument 메서드에 전달되면 Age 필드만 내보내집니다.

마샬링 및 필드 가시성

json 패키지를 사용하여 JSON을 마샬링할 때도 동일한 원칙이 적용됩니다. 내보낸 필드(대문자로 시작)만 출력에 포함됩니다. 이 동작은 Go 언어 사양(http://golang.org/ref/spec#Exported_identifiers)에 설명되어 있습니다.

필드 비가시성 극복

데이터베이스 또는 JSON 출력에 소문자 필드를 포함하려면, 구조체 정의에 "태그"를 사용하세요. 예:

type Sample struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
로그인 후 복사

태그는 내보낸 필드 이름(이름 및 나이)과 그에 상응하는 소문자(이름 및 나이) 간의 명시적인 매핑을 제공합니다.

태그를 사용하거나 다음을 따릅니다. 내보낸 필드에 대문자 필드 이름을 사용하는 규칙을 사용하면 타사 라이브러리와 상호 작용하거나 JSON 작업을 수행할 때 구조체의 모든 필드가 올바르게 처리되도록 할 수 있습니다.

위 내용은 Go에서 내보낼 구조체 필드를 어떻게 제어합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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