У меня есть это удовольствие c:
func getStringRepresentation(v interface{}, size int, brk bool, depth int) string {
val := reflect.ValueOf(v)
if val.Kind() == reflect.Ptr {
v = *v.(types.Pointer) // does not work
val = reflect.ValueOf(v)
}
// ...
}
как я могу разыменовать указатель, чтобы получить его значение? Когда я использую:
v = *v.(types.Pointer)
Ошибка говорит:
Недопустимый косвенный для 'v. (Types.Pointer)' (type 'types.Pointer')
Я попробовал это:
val := reflect.ValueOf(v)
if val.Kind() == reflect.Ptr {
v = v.(types.Pointer).Underlying()
val = reflect.ValueOf(v)
}
и я тоже попробовал это:
val := reflect.ValueOf(v)
if val.Kind() == reflect.Ptr {
v = val.Elem()
val = reflect.ValueOf(v)
}
Мне нужно получить значение интерфейса {} из указателя.