[go] Go 언어의 reflect 패키지 개요
Go 언어에는 reflect
패키지가 있습니다. 이 패키지는 프로그램이 자신의 구조를 검사하고 수정할 수 있는 기능을 제공합니다.
reflect 패키지의 사용 예
reflect
패키지를 사용하면 프로그램이 런타임에 변수의 유형과 값, 구조체의 필드 등을 검사할 수 있습니다. 예를 들어, 다음과 같은 기능을 제공합니다.
package main
import (
"fmt"
"reflect"
)
type Person struct {
Name string
Age int
}
func main() {
p := Person{Name: "Alice", Age: 30}
v := reflect.ValueOf(p)
fmt.Println("Type:", v.Type())
fmt.Println("Kind:", v.Kind())
fmt.Println("Field by index:", v.Field(0))
}
reflect 패키지를 사용하는 이유
reflect
패키지를 사용하면 정적인 타입 시스템을 가진 Go 언어에서 동적으로 변수를 조작할 수 있습니다. 이는 일부 유형의 함수에서 모든 유형의 인수를 다루거나, 유형이 알려지지 않은 구조체 필드에 접근해야 하는 경우 유용합니다.
참고 자료
- Go 언어 공식 문서: The reflect package
이렇게 reflect
패키지를 사용하여 Go 언어의 동적 변수 조작을 쉽게 할 수 있습니다.