Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

Golang(Go) encoding

GOLANG, 20231 min read

에러

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) => 포인터를 역참조하여 해당 포인터가 가리키는 실제 값
© 2024 by GwiyeomGo Tech Blog. All rights reserved.