Go에서 구조체로 작업할 때 여러 이름 태그를 정의하여 다양한 컨텍스트에서 동일한 필드를 나타내는 것이 유용할 수 있습니다. 이는 특정 형식의 데이터가 필요한 타사 라이브러리나 API를 처리할 때 특히 유용합니다.
다음 예를 고려하세요.
type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` }
이 구조체는 MongoDB(bson)에 대한 태그가 지정된 PageId 필드와 함께 Mongo 데이터베이스 문서를 나타내도록 설계되었습니다. MongoDB용으로 태그된 메타 필드도 있습니다. 그러나 이 구조체를 JSON으로 인코딩하면 PageId 필드가 pageId 대신 PageId(대문자)로 렌더링됩니다.
필드에서는 태그 사이의 구분 기호로 쉼표 대신 공백을 사용합니다. 구조체의 업데이트된 버전은 다음과 같습니다.
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }
이 수정을 통해 PageId 필드는 MongoDB(pageId) 및 JSON(pageId) 모두에 대해 태그가 지정됩니다. 이렇게 하면 MongoDB와 상호 작용하거나 JSON으로 인코딩할 때 필드 이름이 적절하게 지정됩니다.
Go Reflect 패키지 문서는 태그 문자열에 대한 규칙을 지정합니다.
By convention, tag strings are a concatenation of optionally space-separated key:"value" pairs.
위 내용은 Go 구조체의 필드에 대해 여러 이름 태그를 어떻게 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!