Go에서 MongoDB용 mgo 라이브러리를 사용하는 맥락에서 특정 구문이 혼란을 야기했습니다.
type Something struct { Id bson.ObjectId "_id,omitempty" Name string }
이로 인해 다음과 같은 질문이 제기되었습니다. 유형 뒤의 문자열 리터럴의 목적은 무엇입니까(예: Id 필드의 경우 "_id,omitempty")?
구조체 유형에 대한 Go 언어 사양에 따르면 이 구문은 필드 태그에 사용됩니다. 필드 태그는 해당 필드 선언의 모든 필드에 대한 속성이 되는 선택적 문자열 리터럴입니다. 이러한 태그는 리플렉션 인터페이스를 통해 표시되지만 그렇지 않으면 Go 컴파일러에서 무시됩니다.
Go 사양에 제공된 프로토콜 버퍼 예에서:
// A struct corresponding to the TimeStamp protocol buffer. // The tag strings define the protocol buffer field numbers. struct { microsec uint64 "field 1" serverIP6 uint64 "field 2" process string "field 3" }
문자열 리터럴은 프로토콜 버퍼 필드 번호를 지정하는 필드 태그 역할을 합니다.
위 내용은 Go Struct 선언의 필드 태그는 무엇이며 그 목적은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!