[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 언어에서 동적으로 변수를 조작할 수 있습니다. 이는 일부 유형의 함수에서 모든 유형의 인수를 다루거나, 유형이 알려지지 않은 구조체 필드에 접근해야 하는 경우 유용합니다.

참고 자료

이렇게 reflect 패키지를 사용하여 Go 언어의 동적 변수 조작을 쉽게 할 수 있습니다.