Golang(Go) encoding
에러
reflect: call of reflect.Value.NumField on ptr Value
reflect 를 사용하는 부분에서 panic 이 발생했다
역참조
num := 12//포인터 변수 선언var test *int//정수 변수의 주소를 할당test = &num// 역참조를 사용하여 포인터를 통해 값에 접근value := *test
포인터 사용 이유?
- 인자를 통해 주소를 전달받아 복사본이 아닌 원본에 대한 작업 수행
- 메모리 주소에 직접 값을 저장하거나 읽는 작업 성능 향상 시킴
해결
func (t *Test) GetTest () { valueOf := reflect.ValueOf(*t)}
- 포인터 타입을 가진 Test 구조체,내부에서는 *t 처럼 역참조를 통해 실제 값에 접근
- reflect.ValueOf(*t) => 포인터를 역참조하여 해당 포인터가 가리키는 실제 값