> 백엔드 개발 > Golang > Go의 리플렉션 패키지를 사용하여 구조체 필드 태그 값에 액세스하는 방법은 무엇입니까?

Go의 리플렉션 패키지를 사용하여 구조체 필드 태그 값에 액세스하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-11 17:35:16
원래의
947명이 탐색했습니다.

How to Access Struct Field Tag Values Using Go's Reflection Package?

Go의 Reflection 패키지를 사용하여 필드 태그 값에 액세스

질문:

특정 항목의 태그 값에 어떻게 액세스할 수 있습니까? Go 리플렉션을 사용하는 구조체 필드 package?

답변:

구조체를 반영하는 동안 해당 값을 제공하여 특정 필드의 태그 값을 직접 검색하는 것은 불가능합니다. 이는 리플렉션 패키지가 값을 원래 구조체와 자동으로 연결할 수 없기 때문입니다.

태그 값을 얻으려면 필드와 연결된 Reflect.StructField를 가져와야 합니다. 이를 수행하는 방법은 다음과 같습니다.

import "reflect"

type User struct {
    name    string `json:name-field`
    age     int
}

func getStructTag(field reflect.StructField) string {
    return string(field.Tag)
}

// ...

user := &User{"John Doe The Fourth", 20}
field, ok := reflect.TypeOf(user).Elem().FieldByName("name")
if ok {
    tag := getStructTag(field)
    // ...
}
로그인 후 복사

이 예에서는 FieldByName을 사용하여 "name" 필드에 대한 Reflect.StructField(필드)를 얻습니다. 그런 다음 필드를 getStructTag 함수에 전달하여 태그 값을 검색합니다.

위 내용은 Go의 리플렉션 패키지를 사용하여 구조체 필드 태그 값에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿