Go에서 구조체 태그는 컴파일러에 추가 정보를 제공하는 데 사용되는 주석입니다. 그러나 구조체 태그에서 선행 밑줄을 사용하는 것은 혼란스러워 보일 수 있습니다.
밑줄(_)로 표시되는 Go의 공백 식별자는 참조할 수 없는 구조체입니다. 이러한 빈 필드는 프로그램에 표시되지 않으며 내부 목적으로만 지정됩니다.
제공된 코드에서 밑줄로 표시된 빈 필드는 Qt에서 특정 용도로 사용됩니다. 바인딩. 이는 외부 소스에서 들어오는 데이터의 레이아웃과 일치하는 바이트 또는 메모리 위치에 후속 필드를 정렬하기 위한 패딩으로 사용됩니다. 이 정렬은 다른 시스템에서 데이터를 읽거나 쓰는 프로세스를 최적화합니다.
유형 주석으로 빈 필드가 도움이 될 수 있지만 소개할 수 있으므로 신중하게 사용해야 합니다. 불필요한 메모리 오버헤드. 대신 원하는 유형의 크기가 0인 배열을 사용하는 것이 좋습니다. 그러면 구조체의 크기에 영향을 주지 않고 유형 정보가 보존됩니다.
리플렉션을 통해 빈 필드에 포함된 유형 정보에 액세스할 수 있습니다. . 아래 코드 조각은 Type.Elem() 메서드를 사용하여 빈 필드의 태그와 유형을 검색하는 방법을 보여줍니다.
f := reflect.ValueOf(CustomLabel{}).Type().Field(0) fmt.Println(f.Tag) fmt.Println(f.Type) fmt.Println(f.Type.Elem())
구조체 태그에 대해 다음 리소스를 살펴보세요.
위 내용은 Go Struct 태그에 밑줄을 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!