Go의 Reflect 패키지를 통해 구조체 필드 태그에 액세스
구조체의 필드를 반영하고 해당 태그 값을 검색하는 것은 Go의 Reflect 패키지를 사용하여 수행할 수 있습니다. 다음 예를 고려하십시오.
type User struct { name string `json:"name-field"` age int } // ... user := &User{"John Doe The Fourth", 20} getStructTag(user.name) // How to obtain the tag value here?
솔루션
전체 구조체를 getStructTag에 전달할 필요는 없습니다. 대신, Reflect.TypeOf 함수를 활용하여 구조체의 유형을 얻고 Elem 메소드를 사용하여 기본 값 유형을 검색할 수 있습니다. 그런 다음 FieldByName을 사용하여 원하는 구조체 필드에 액세스합니다.
field, ok := reflect.TypeOf(user).Elem().FieldByName("name") if !ok { // Handle error } tag := string(field.Tag)
이 경우 사용자는 구조체에 대한 포인터이므로 Elem을 활용합니다. FieldByName 필드에 접근하면 "name" 필드에 해당하는 Reflect.StructField를 직접 얻을 수 있습니다. 획득한 필드의 태그 속성은 태그 값에 대한 액세스를 제공합니다.
데모
이 기술의 대화형 예는 다음 링크에서 찾을 수 있습니다. 구조체 필드의 태그](https://play.golang.org/p/_M9Q-r1fuzq).
위 내용은 Go의 Reflect 패키지를 사용하여 구조체 필드 태그에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!