Go Types에서 Reflect.Type에 액세스
Go에서는 reflect.Type 특정 데이터 구조나 유형에 대한 정보. 이 문서에서는 reflect.Type 정보 획득과 관련된 두 가지 시나리오를 살펴봅니다.
인스턴스화 없이 Reflect.Type 검색:
인스턴스를 생성하지 않고 구조체(t1)의reflect.Type을 획득하는 것이 가능합니까?
답변: 예. 이를 달성하려면 다음 접근 방식을 사용할 수 있습니다.
var v1 reflect.Type = reflect.TypeOf((*t1)(nil)).Elem()이 기술은 유형화된 nil 값을 활용합니다. Go는 유형 리터럴을 제공하지 않지만, 유형이 지정된 nil 값에서
reflect.Type을 얻을 수 있습니다.
Reflect.Type 검색 문자열:
문자열 이름 "t1"만 주어지면 t1의reflect.Type을 파생시킬 수 있습니까?
답변: 아니요. 이 작업은 Go 내에서 기본적으로 지원되지 않습니다. 런타임은 바이너리 내의 모든 유형을 추적해야 하므로 문제가 발생합니다.
유형 레지스트리 패키지와 문자열 기반 유형 등록이 실현 가능한 접근 방식이지만 익명 유형과 이름 중복 가능성. Go 런타임 자체에는 문자열 이름에서 유형을 검색하는 기능이 통합되어 있지 않을 것입니다.위 내용은 인스턴스화 없이 Go 유형에서 'reflect.Type'에 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!